いくつかの TableRows を含む TableLayout があります。各行には 2 つの TextView があります。1 つ目は説明テキストを表示し、2 つ目は数値を表示します。例えば:
| Text |.0.|
| Text2|.0.|
| ... |.0.|
私は同じ重みの TextViews を持っています。重心は行自体とそれぞれの両方に集中して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
重みを変更しようとしました (最初の重み 9 と 2 番目の重み 1 を割り当てますTextView
) が、うまくいきませんでした。テキストが変更されたときに、それが何であるかに関係なく(空の文字列 "" を含む)、すべての数字を並べてシフトしないようにしたいと思います。
何か案は?