6

以下に投稿されたレイアウトを使用して、そのレイアウトを行として ListView に膨張させてメッセージを表示します。ImageView問題は、1 行のメッセージでは問題なく動作することですが、メッセージの状態が画面から押し出されていることを示す2 行以上の場合、理由を取得できません。何か案は?以下のレイアウトコードとスクリーンショット。

ここに画像の説明を入力

それは膨張したレイアウトです:

    <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
   android:layout_height="match_parent"
    android:padding="5dp" >

<TextView
    android:id="@+id/tvTimestamp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="TextView"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textSize="8sp" />

<LinearLayout
    android:id="@+id/rl_message_holder"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_toRightOf="@+id/tvTimestamp"
    android:background="@drawable/outgoing_bg"

    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tvMessageOutgoing"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <ImageView
        android:id="@+id/imgMessageState"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_gravity="bottom"
        android:src="@drawable/ic_launcher" />

  </LinearLayout>

 </RelativeLayout>
4

5 に答える 5

9

線形レイアウトの幅を変更する fill_parent

textview に android:layout_weight="1" を追加します

于 2013-01-31T09:51:53.413 に答える
4
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dp" >

    <TextView
        android:id="@+id/tvTimestamp"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="20"
        android:gravity="center_vertical"
        android:text="10:20pm"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textSize="8sp" />

    <RelativeLayout
        android:id="@+id/rl_message_holder"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="80" >

        <TextView
            android:id="@+id/tvMessageOutgoing"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@+id/imgMessageState"
            android:padding="4dp"
            android:singleLine="false"
            android:text="android developer tutorial in the world"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <ImageView
            android:id="@+id/imgMessageState"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_gravity="bottom"
            android:contentDescription="@string/app_name"
            android:src="@drawable/ic_launcher" />
    </RelativeLayout>

</LinearLayout>
于 2013-01-31T09:46:44.873 に答える
2

これは私のために働いた

<TextView
        android:id="@+id/tvMessageOutgoing"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:layout_weight="1"
        android:text="Medium Tesssssssssssssssssssssssssssssseeeeeeeessssxt"
        android:textAppearance="?android:attr/textAppearanceMedium" />

テキストビューに残りのスペースを与えます。

于 2013-01-31T09:48:09.710 に答える
1

このようにしてみてください

   <LinearLayout
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="0.6"
          >

          <ImageView
        android:id="@+id/imgMessageState"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_gravity="bottom"
        android:src="@drawable/ic_launcher" />

        </LinearLayout>

線形レイアウト内で画像ビューレイアウトを定義します

于 2013-01-31T09:46:58.390 に答える
0

使用できます

android:drawableRight="@drawable/ic_launcher"
于 2013-01-31T09:54:18.420 に答える