我有以下情况:
<?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>
结果:
第一行的消息 block 正在填充空间,因为它前面有两个 View 元素和 layout_height="fill_parent"
。这工作正常,但我很难为第二行获得相同的结果,但消息 block 位于左侧。如果我在消息上使用 fill_parent
执行此操作,它会填满整个屏幕。我正在寻找一种方法(无需使用 Java 代码修改布局)让头像和 ConversationCould
图像将消息 block 推到左侧。
在代码中,我将第二个消息 block 的宽度设置为 100dp 以演示它应该是什么样子(但随后空白空间被填满)。
我尝试了相对布局而不是线性布局,但这不起作用,因为需要重力底部。
希望有人在这方面更有经验并能提供解决方案。感谢您的帮助。
编辑: TextView 位于相对布局内,因为我稍后需要在其中添加额外的 View ..
最佳答案
将 weight=1
和 width=0dp
作为相对布局,里面的文本应该有 match_parent
作为宽度
关于android - LinearLayout 在填充父级的 View 右侧添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27289839/