2012-08-12 47 views
2

我有一个聊天应用程序,我需要在listView中对齐左侧或右侧行。 我的问题是我无法左右对齐每一行。他们仍然左对齐。
我膨胀基于休耕代码align android 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> 

回答

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> 

上述代码创建这样一个观点:

two lines of chat

+0

它不工作,它只对齐文本,并绘制仍然左对齐 – AlexGo 2012-08-12 14:35:18

+0

然后给TextView的背景绘制。 – 2012-08-12 14:38:24

+0

我试过这个,但我没有解决问题 – AlexGo 2012-08-12 14:53:54

0

好尝试这一个。

奇数行

<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> 

即使

<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> 

它是否解决您的问题?

+0

它does'n工作,它只对齐文本和drawable仍然对齐左 – AlexGo 2012-08-12 14:42:27

+0

我修改了一下代码。现在试试... – 2012-08-12 14:46:50

+0

我也试过,但没有工作 – AlexGo 2012-08-12 14:50:29

相关问题