寻找一些 Android 布局建议

Looking for some Android layout advice

我有一个问题,我需要在 运行 时向布局添加多个 (>20),按钮可以有 2 种不同的宽度和 2 种不同的高度。我在设计时不知道这些按钮的确切尺寸,因为最小尺寸将由设备屏幕决定。所以我想我会使用线性布局并使用权重来管理按钮的大小,但你一次只能在一个方向上布局,我需要按钮能够在任一方向上将它们的大小加倍,请参见下面的 ascii 艺术。我还查看了相对布局,但我需要在设计时指定按钮的大小,但我没有这样做,因为每个用户都可以根据他们想要强调的按钮使用不同的布局。

<code>
 +--------+   
 |        | single size button
 |        |   
 +--------+

 +--------+--------+
 |                 | double width single height
 |                 |
 +--------+--------+

 +--------+
 |        |
 |        | double height single width
 +        +
 |        |
 |        |
 +--------+

 +--------+--------+
 |                 |
 |                 | double height double width
 +                 +
 |                 |
 |                 |
 +--------+--------+
</code>

考虑到这一点,这是一个可能的布局

<code>
+--------+ +--------+ +--------+--------+ +--------+  
|        | |        | |                 | |        |
|        | |        | |                 | |        |
+--------+ +--------+ +--------+--------+ +        + 
+--------+ +--------+-+--------+          |        |    
|        | |                   |          |        |   
|        | |                   |          |        |
+--------+ +-------------------+          +--------+  

</code>

所以我无法确定构建如此灵活的布局的方法,想知道您是否可以告诉我构建此布局是否只能在代码中完成,而不是更高效和可重用的 xml 基于布局?

问候 达米恩

RecyclerView with StaggeredGridLayout 来自新棒棒糖 API。这些 类 在支持库中可用。

他们让做这样的东西, 支持水平和垂直滚动,像ListView一样使用,可以动态填充。

Or use any libraries, that you can find by key word - twowayview