寻找一些 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
我有一个问题,我需要在 运行 时向布局添加多个 (>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