我有一个布局如下。我遇到的问题是,如果friend_name的文本视图很长,它会"推"其余部分,并且它们重叠/覆盖friend_last_msg的最后一个 ViewStub如何使最后一个 ViewStub 也"调整"此"降低其他小部件"?
否则,我怎样才能使最后一个视图存根位于LinearLayout内部并显示在左侧和下方?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
>
<ImageView
android:id="@+id/friend_img”
android:layout_width="@dimen/friend_big”
android:layout_height="@dimen/friend_big”
android:layout_alignParentLeft="true"
android:scaleType="centerCrop"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/friend_img"
>
<TextView
android:id="@+id/friend_name”
android:layout_toRightOf="@id/friend_img"
android:layout_marginBottom="@dimen/layout_small_padding"
android:includeFontPadding="false"
android:paddingBottom="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:ellipsize="end"
android:gravity="top"
/>
<ViewStub
android:id="@+id/friend_sign”
android:inflatedId="@+id/friend_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/friend_sign_layout”/>
<TextView
android:id="@+id/friend_contact”
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:layout_marginBottom="1dp"
android:padding="5dp"
/>
</LinearLayout>
<ViewStub
android:id="@+id/friend_last_msg”
android:inflatedId="@+id/friend_last_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout="@layout/friend_last_msg"/>
</RelativeLayout>
首先像
这样输入右逗号,然后根据需要输入android:layout_height
和android:layout_width
值。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
>
<ImageView
android:id="@+id/friend_img[**"**]
android:layout_width="@dimen/friend_big[**"**]
android:layout_height="@dimen/friend_big"
android:layout_alignParentLeft="true"
android:scaleType="centerCrop"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/friend_img"
>
<TextView
android:id="@+id/friend_name[**"**]
android:layout_toRightOf="@id/friend_img"
android:layout_marginBottom="@dimen/layout_small_padding"
android:includeFontPadding="false"
android:paddingBottom="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:ellipsize="end"
android:gravity="top"
/>
<ViewStub
android:id="@+id/friend_sign"
android:inflatedId="@+id/friend_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/friend_sign_layout"/>
<TextView
android:id="@+id/friend_contact"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:layout_marginBottom="1dp"
android:padding="5dp"
/>
</LinearLayout>
<ViewStub
android:id="@+id/friend_last_msg"
android:inflatedId="@+id/friend_last_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout="@layout/friend_last_msg"/>
你可以这样使用:
将 id -> @+id/container
添加到父级
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/friend_img"
android:orientation="vertical">
对于您的存根布局,只需更改为以下内容:
<ViewStub
android:id="@+id/friend_last_msg"
android:inflatedId="@+id/friend_last_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/container"
android:layout_toRightOf="@+id/friend_img"
android:layout_alignParentRight="true"
android:layout="@layout/friend_last_msg"/>