私はこの問題を解決するために何時間も費やしてきました.
3 つの TextView を並べて配置しようとしています。含まれるテキストに関係なく、それらすべてを均等に大きくしたいのですが、テキストがそれらの1つに収まらない場合は、その特定のテキストビューの最後でテキストを「...」に置き換える必要があります(エリプサイズの助け)。
| | <>TextView>> <>TextView>> <>TextView> |
私が言ったように、私はそれらが常に同じ大きさである必要があります。これは、重みを使用して LinearLayout で「簡単に」実行できますが、ellipsize は機能しません (または、少なくとも私は機能しません)。これを機能させるには絶対幅サイズが必要なようです。
私は LinearLayouts、RelativeLayouts、TableLayouts を試してきましたが、最終的には xml レイアウトとプログラムによるアプローチの組み合わせを採用しました (これは必要以上に高度に思えますが、それが唯一の方法でした。近い)。ただし、現在は絶対幅 (プログラムで設定) を使用していますが、適切な密度乗数で乗算していますが、異なる画面では異なって見えます。4.3 インチの画面では使用できるスペースがいくらかありますが、2.7 インチの画面ではかなり見栄えがします。
レイアウトでこれを達成する方法はありますか?私はフォーラムでも少し見回してきましたが、問題は、ほとんどの人が1つのテキストビューだけに楕円サイズ機能を持たせたいということであり、それらすべてではありません...
以下に、それを機能させるための最初の試みを示しますが、楕円サイズが機能するには絶対幅が必要だと思うため、機能しません。たとえば、幅を「1dp」に設定しても、実際にはうまくいきません。
どんな提案でも大歓迎です!
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="10dip"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:editable="true"
android:ellipsize="end"
android:singleLine="true"
>
</TextView>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:editable="true"
android:singleLine="true"
android:ellipsize="end"
>
</TextView>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:editable="true"
android:ellipsize="end"
android:singleLine="true"
>
</TextView>
</LinearLayout>