6

TextViewTextView が楕円形の端であり、 View がwrap_contentTextView のすぐ右側にある次のレイアウトを実現するにはどうすればよいですか?

TextView width が異なる場合のレイアウトの動作の 3 つの例を次に示します。

|[TextView] [View]              |

|[TextView TextView] [View]     |

|[TextView TextView T...] [View]|

[編集]

以下TableLayoutは正しい動作を示します。

<TableLayout
    android:id="@+id/upper_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/alert_button"
    android:shrinkColumns="0"
    android:stretchColumns="2" >

    <TableRow>

        <TextView
            android:id="@+id/name_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:ellipsize="end"
            android:includeFontPadding="false"
            android:lines="1"
            android:paddingTop="2dp"
            android:scrollHorizontally="true" />

        <TextView
            android:id="@+id/unread_count_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:includeFontPadding="false"
            android:paddingBottom="0dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:paddingTop="2dp" />
    </TableRow>
</TableLayout>

TableLayoutは 3 つの列を使用し、最後はハックです。このstrechColumnsプロパティにより、使用可能なすべてのスペースが使用されるため、2 番目の列は常に最初の列のTextViewすぐ右側にあります。プロパティにより、最初のTextView楕円サイズが正しくなりshrinkColumnsます。

TableLayoutただし、それを達成するためにa を使用するという考えは好きではありません。誰もがより良い方法を知っていますか?

ありがとう

4

2 に答える 2

0

これを試してみてください(今は確認できませんが、私の観点からは機能するはずです):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="6dip" >

    <TextView
        android:id="@+id/my_txtvw_txtvw"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ellipsize="marquee"
        android:maxLines="1" />

    <TextView
        android:id="@+id/my_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/my_txtvw_txtvw"
        android:maxLines="1" />

</RelativeLayout>
于 2012-07-16T18:55:27.443 に答える
0

これを試して:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/text1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/my_view"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_alignParentLeft="true"
        android:text="blablabla blablabla"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|left" />

    <TextView
        android:id="@+id/my_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:maxLines="1" />

</RelativeLayout>

あなたが望むandroid:ellipsize="end"かどうかはわかりませんandroid:ellipsize="marquee"。レイアウトは問題なく機能すると思います。必要なellipsize値IDを置き換えるだけです。

進捗状況を教えてください...

于 2012-07-16T23:57:44.797 に答える