我有一个包含2列的相对布局和几行TextView。我在第二列中显示了一系列长字符串。在高dpi设备上,我没有问题,但在较低的dpi设备上,长串包裹到第二行。这不是问题,除了它与下一行重叠。
如何让行自动调整为所需的行数?
这是我布局的片段
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_left1"
android:width="100dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_right1"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/tv_left1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_left2"
android:width="100dp"
android:layout_below="@id/tv_left1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_right2"
android:layout_alignBaseline="@id/tv_left2"
android:layout_alignBottom="@id/tv_left2"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@id/tv_left2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_left3"
android:width="100dp"
android:layout_below="@id/tv_left2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_right3"
android:layout_alignBaseline="@id/tv_left3"
android:layout_alignBottom="@id/tv_left3"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@id/tv_left3" />
我还尝试更改我的TextView,使得左(n)位于右侧(n-1)而不是右侧(n),因为左侧列是固定的,而右侧列是由变量填充的长度字符串。这在Android Studio布局视图中看起来很好,故意长字符串,即行在长字符串下方正确启动。它也适用于三星Galaxy S7(1440x2560)和Google Pixel(1080x1920)。但是,当我在HTC One X(720x1280)和另一个通用480x800设备上尝试时,该行开始在顶部附近,与许多其他行重叠。
答案 0 :(得分:0)
好的,所以我最终使用了一个带有shrinkColumns =“n”的TableLayout,其中n是我希望包装的任何列的列索引(从0开始)。 RelativeLayout似乎不会在旧手机中产生可靠的结果。