我在右边有一个列表视图:
此列表视图用于消息传递。我想知道如何扭转发件人信息的布局。
更详细。 我需要发件人的邮件:
IMAGEVIEW与屏幕权利保持一致。
与IMAGEVIEW的右边对齐。
与IMAGEVIEW的权利保持一致并留下权利的信息。
时间与每个项目的布局左右对齐。(未显示在图像中)
基本上我需要现有布局来反转发送者消息。 我有代码,但目前不在我的电脑前。 如果需要代码,我很乐意添加它。 我使用基本的BaseAdapter来加载listview。
ADDED
这是自定义行布局:
int kNumPeriodsPerMove = ([&] () {
// your code here
return num_periods_per_move;
})();
这是我的BaseAdapter类:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal"
android:paddingTop="10dp"
android:weightSum="1"
android:id="@+id/chatView">
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:id="@+id/messenger_pic"
android:layout_marginLeft="10dp"
android:src="@drawable/profile" />
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="1">
<TextView
android:layout_width="220dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/messenger_name"
android:layout_marginLeft="10dp"
android:textStyle="bold"
android:textColor="#000000" />
<TextView
android:layout_width="match_parent"
android:layout_height="118dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Small Text"
android:id="@+id/messenger_message"
android:layout_marginLeft="10dp"
android:textStyle="normal" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/messenger_time"
android:layout_gravity="bottom"
android:textAlignment="center"
android:textColor="#000000" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
另一种方法是以编程方式设置右侧布局。
RelativeLayout.LayoutParams params =(RelativeLayout.LayoutParams)layout.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout.setLayoutParams(params);
答案 1 :(得分:1)
使用以下代码添加新的chat_view_reverse.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal"
android:paddingTop="10dp"
android:weightSum="1"
android:id="@+id/chatView">
<TextView
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/messenger_time"
android:layout_gravity="bottom"
android:textAlignment="center"
android:textColor="#000000" />
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="1">
<TextView
android:layout_width="220dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/messenger_name"
android:layout_marginLeft="10dp"
android:textStyle="bold"
android:textColor="#000000" />
<TextView
android:layout_width="match_parent"
android:layout_height="118dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Small Text"
android:id="@+id/messenger_message"
android:layout_marginLeft="10dp"
android:textStyle="normal" />
</LinearLayout>
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:id="@+id/messenger_pic"
android:layout_marginLeft="10dp"
android:src="@drawable/profile" />
</LinearLayout>
</RelativeLayout>
然后用正常或反向视图的标志条件编辑你的基本适配器getView()
if(reverse_flag){
View row = inflater.inflate(R.layout.chat_view, parent, false);
}else{
View row = inflater.inflate(R.layout.chat_view_reverse, parent, false);
}