2

リストビューがあります。行には 2 つ (将来的にはそれ以上) のテキスト ビューがあります。私の目標は、最初のテキストが長すぎる場合、楕円を表示する必要がありますが、2 番目のテキスト ビューは常に表示されるようにすることです。これを列で一時的に解決しました(重み合計+テキストビューの重みの割合)。しかし、私の目標は、テキストが短い場合、最初のテキスト ビューのすぐ隣に 2 番目のテキスト ビューが表示されることです (最初の添付画面を参照してください。最初のテキスト ビューのハードコードされた maxwidth によって作成された偽物です)。問題は、最初のテキストが長すぎると、2 番目のテキストが消えてしまうことです。linearlayout、relativelayout、sublayouts などで多くの構成を試しましたが、最終的に行き詰まりました。何か案が?これは、行の単純な xml です。

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:singleLine="true"
        android:text="Some very very long long long long long long long"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#C03518"
        android:text="10"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>

そして、これは動作しないrelativelayoutのコードです:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TextView01"
        android:layout_alignParentLeft="true"
    android:ellipsize="end"
    android:singleLine="true"           
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some very very long long long long long long long"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/TextView02"
        android:layout_toRightOf="@id/TextView01"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#C03518"
        android:text="10"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>

目標

現実

よろしく

4

2 に答える 2

0

次のようなカスタムフローレイアウトを使用することもできます:http: //karimvarela.com/2012/12/01/android-creating-a-flowlayout/

于 2012-12-12T00:14:45.673 に答える
0

列の重みを設定する必要があります。このようなもの :

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<TextView
    android:id="@+id/TextView01"
    android:layout_width="0"
    android:layout_height="wrap_content"
    android:layout_weight="9"
    android:ellipsize="end"
    android:singleLine="true"
    android:text="Some very very long long long long long long long"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/TextView02"
    android:layout_width="0"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#C03518"
    android:text="10"
    android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>

これは、最初の列が画面の 90% を占め、2 番目の列が 10% を占めることを意味します。または、テーブル レイアウトを使用して、stretch_columns を 0,1 に設定することもできます。何かのようなもの :

<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:stretch_columns="0,1" >

<TableRow>

<TextView
android:id="@+id/TextView01"
android:layout_width="0"
android:layout_height="wrap_content"
android:layout_weight="9"
android:ellipsize="end"
android:singleLine="true"
android:text="Some very very long long long long long long long"
android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
android:id="@+id/TextView02"
android:layout_width="0"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#C03518"
android:text="10"
android:textAppearance="?android:attr/textAppearanceMedium" />

</TableRow>

</TableLayout>
于 2013-01-17T17:41:36.460 に答える