我需要一个 View 来保存多个 TextView,不幸的是我不知道确切的数量。我需要将 TextViews 排序为彼此下方或彼此相邻的堆栈(想象俄罗斯方块,但只有矩形或正方形)。我尝试考虑的方式是使用 LinearLayout 水平或垂直地保持它们。然后,如果它们彼此相邻,我会使用它们的重量适当地拉伸它们。否则,我使用垂直方向。问题在于具有更复杂堆栈的嵌套线性布局的性能。我考虑过使用RelativeLayout,但这行不通,因为我需要TextViews 不重叠。所以就像如果他们彼此相邻,他们需要每个人均匀地占据足够的空间。使用 layout_weight 效果很好。
这是一个给我警告的例子(只是我以编程方式做的一个简单例子):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Hello World 1"
android:background="#000000"
android:layout_weight="1"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Hello World 3"
android:background="#000000"
android:layout_weight="1"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Hello World 4"
android:background="#000000"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World 2"
android:background="#000000" />
</LinearLayout>
顺便说一句,我已经尝试过使用 RelativeLayout,但是其中一个 TextView 需要设置大小,但我需要它们均匀地占用空间。我不知道具体的尺寸。测量屏幕宽度并以这种方式划分它既笨重又不精确。我感谢任何人的意见。
编辑:所以我一直在考虑更多,并想到了使用RelativeLayout的解决方案。Android文档中有一个很好的示例,但唯一的问题是其中一个视图需要设置大小,以便另一个可以拉伸。但是如果有一种方法可以让它们都没有固定的尺寸,那也可以,这样它们就可以伸展了。有人在某个时候尝试过这样做吗?