我有以下情况:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:orientation="horizontal">
<com.myappnamespace.old.widgets.RoundBorderedImageView
android:layout_width="53dp"
android:layout_height="53dp"
app:src="@drawable/avatar_john_doe"
android:layout_gravity="bottom"
app:borderColor="#ff0"
/>
<com.myappnamespace.old.widgets.ConversationCloud
android:id="@+id/block"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="bottom"
android:layout_marginBottom="15dp"
android:layout_marginLeft="10dp"
/>
<RelativeLayout
android:id="@+id/message"
android:minHeight="100dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="#fff"
android:padding="6dp"
android:layout_gravity="bottom"
>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some dummy text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis lectus metus, at posuere neque. Sed pharetra nibh eget orci convallis at posuere leo convallis. Sed blandit augue vitae augue scelerisque bibendum. Vivamus sit amet libero turpis, non venenatis urna. In blandit, odio convallis suscipit venenatis, ante ipsum cursus augue."
/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:orientation="horizontal">
<RelativeLayout
android:id="@+id/message2"
android:minHeight="100dp"
android:layout_height="wrap_content"
android:layout_width="200dp"
android:background="#fff"
android:padding="6dp"
android:layout_gravity="bottom"
>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some dummy text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis lectus metus, at posuere neque. Sed pharetra nibh eget orci convallis at posuere leo convallis. Sed blandit augue vitae augue scelerisque bibendum. Vivamus sit amet libero turpis, non venenatis urna. In blandit, odio convallis suscipit venenatis, ante ipsum cursus augue."
/>
</RelativeLayout>
<com.myappnamespace.old.widgets.ConversationCloud
android:id="@+id/block2"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="bottom"
android:layout_marginBottom="15dp"
android:layout_marginRight="10dp"
app:cloud_direction="right"
/>
<com.myappnamespace.old.widgets.RoundBorderedImageView
android:layout_width="53dp"
android:layout_height="53dp"
app:src="@drawable/avatar_john_doe"
android:layout_gravity="bottom"
app:borderColor="#ff0"
/>
</LinearLayout>
</LinearLayout>
结果:
第一行的消息块正在填充空格,因为它前面有两个视图元素layout_height="fill_parent"
。这工作正常,但我很难在第二行得到相同的结果,除了消息块在左边。如果我在消息上使用fill_parent
执行此操作,则会填满整个屏幕。我正在寻找一种方法(不用Java代码修改布局)让头像和ConversationCould
图像将消息块推到左边。
在代码中,我将第二个消息块的宽度设置为100dp,以演示它应该是什么样子(但是填充空白空间)。
我尝试过相对布局而不是线性布局,但由于所需的重力底部,这不起作用。
我希望有人在这方面更有经验,可以提供解决方案。感谢您的帮助。
编辑:textview位于相对布局中,因为我需要稍后添加额外的视图..
答案 0 :(得分:3)
将weight=1
和width=0dp
放入相对布局,内部文字宽度应为match_parent
答案 1 :(得分:1)
试试这个。你应该给你的对话云重量3和1到图像
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:orientation="horizontal">
<com.myappnamespace.old.widgets.RoundBorderedImageView
android:layout_width="0dp"
android:layout_height="53dp"
app:src="@drawable/avatar_john_doe"
android:layout_gravity="bottom"
app:borderColor="#ff0"
android:layout_weight="1"/>
<com.myappnamespace.old.widgets.ConversationCloud
android:id="@+id/block"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="bottom"
android:layout_marginBottom="15dp"
android:layout_marginLeft="10dp"
/>
<RelativeLayout
android:id="@+id/message"
android:minHeight="100dp"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:background="#fff"
android:padding="6dp"
android:layout_gravity="bottom"
android:layout_weight="3">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some dummy text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis lectus metus, at posuere neque. Sed pharetra nibh eget orci convallis at posuere leo convallis. Sed blandit augue vitae augue scelerisque bibendum. Vivamus sit amet libero turpis, non venenatis urna. In blandit, odio convallis suscipit venenatis, ante ipsum cursus augue."
/>
</RelativeLayout>
</LinearLayout>