2

チャット アプリケーションがあり、listView で左または右の行を揃える必要があります。私の問題は、各行を左右に揃えることができないことです。それらは左揃えのままです。
次のコードに基づいて各レイアウトを膨らませます

奇数行

   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/userprofile_view"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/odd" 
 android:layout_gravity="right">

 <TextView
  android:id="@+id/chat_message_odd"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:paddingLeft="10dp"  
  android:textColor="#66CD00"
   />
</FrameLayout>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/userprofile_view"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/even" 
 android:layout_gravity="left">

 <TextView
  android:id="@+id/chat_message"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:paddingLeft="10dp"
  android:textColor="#000000"
   />
</FrameLayout>

メインレイアウト

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FFFFFF" >


    <ListView
    android:id="@+id/listMessages"
    android:layout_width="wrap_content"
    android:layout_height="0px"
    android:layout_weight="1"
    android:scrollbars="vertical"
    android:divider="@null"
    android:dividerHeight="0dp" />

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <EditText
        android:id="@+id/sendText"
        android:layout_width="253dp"
        android:layout_height="wrap_content"
        android:autoText="false"
        android:capitalize="none"
        android:ems="10"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:textSize="16sp"
        android:hint="Enter text"
        >       
    </EditText>
    <Button
        android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"        
        android:text="Send" />

</LinearLayout>

</LinearLayout>
4

2 に答える 2

2

TextView の幅を match_parent にして、重力を右に設定します。

だからそれを作る:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/userprofile_view"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/odd" 
 >

 <TextView
  android:id="@+id/chat_message_odd"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:gravity="right"
  android:textColor="#66CD00"
   />
</FrameLayout>

または、全体として親の右側にある左揃えのテキストが必要な場合は、次のような RelativeLayout を使用します。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/userprofile_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/odd" >



    <TextView
        android:id="@+id/chat_message_odd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:paddingLeft="10dp"
        android:textColor="#66CD00" />

</RelativeLayout>

*** リスト ビューをシミュレートするように編集して、ここで垂直方向の LinearLayout を実行しました。

    <RelativeLayout
        android:id="@+id/userprofile_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/chat_message_odd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:drawable/editbox_background"
            android:gravity="right"
            android:padding="10dp"
            android:text="foo bar"
            android:textColor="#66CD00" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/userprofile_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/chat_message_even"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:background="@android:drawable/editbox_background"
            android:gravity="right"
            android:padding="10dp"
            android:text="foo fighters"
            android:textColor="#f400" />
    </RelativeLayout>

</LinearLayout>

上記のコードは、次のようなビューを作成します。

2行のチャット

于 2012-08-12T14:27:01.200 に答える
0

Okay try this one.

ODD ROWS

   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/userprofile_view"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/odd"
  android:layout_gravity="right">

 <TextView
  android:id="@+id/chat_message_odd"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:paddingLeft="10dp"  
  android:textColor="#66CD00" />
</FrameLayout>

EVEN

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/userprofile_view"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/even"
 android:layout_gravity="left">

 <TextView
  android:id="@+id/chat_message"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:paddingLeft="10dp"
  android:textColor="#000000"   />
</FrameLayout>

Did it solve your issue?

于 2012-08-12T14:31:37.497 に答える