我有一个聊天应用程序,我需要在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>
答案 0 :(得分: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>
上面的代码创建了一个这样的视图:
答案 1 :(得分:0)
好的尝试这个。
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>
它解决了你的问题吗?