我有一个 TableLayout,里面有几个 TableRows。在每一行中,我有两个 TextView:第一个显示一些描述性文本,第二个显示一个数字。例如:
| Text |.0.|
| Text2|.0.|
| ... |.0.|
我有相同权重的 TextViews,重力以行本身和 each 为中心TextView
,但是,当在应用程序执行期间更改文本时,元素会移动并且不再排列。所以它变成了这样:
| Text |..0|
| Text2|..0|
| ... |..0|
值不再是它们最初的位置。我希望在文本更改时值保持原样(最长的文本不够长以至于接近数字)。我还想保持格式整洁和尽可能低的 SDK 级别(目前为 8)。
示例 xml 代码:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/TableLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="8"
tools:context=".Name" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right" />
</TableRow>
// This is the start of where the descriptive text and their values are
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/textView2-1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" />
<TextView
android:id="@+id/textView2-2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" />
</TableRow>
... // etc
我尝试过改变权重(分配第一个TextView
权重 9 和第二个权重 1),但这没有用。无论文本是什么(包括空字符串“”),我都希望所有数字都排成一行,并且在文本更改时不移位。
有任何想法吗?