我有以下布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/list_item_bottom">
<TextView android:id="@+id/list_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ViewStub android:id="@+id/stub_for_alt_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/list_item_name"
android:layout="@layout/text_view_alt_name"/>
<ImageView android:id="@+id/list_item_dopinfo1_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/stub_for_alt_name"
android:src="@drawable/ic_released"/>
</RelativeLayout>
我希望ViewStub位于TextView和ImageView之下,位于ViewStub之下。
ViewStub膨胀的元素按照我的预期显示。 但没有ViewStub的元素将TextView与ImageView重叠。
我的布局出了什么问题?
更新
我发现的唯一解决方案是为ViewStub和相关的TextView提供相同的android:id
值。
答案 0 :(得分:24)
我知道这是一个老问题,但其中的诀窍是将inflatedId
参数设置为与实际viewStub本身相同,如下所示:
<ViewStub android:id="@+id/stub_for_alt_name"
android:inflatedId="@id/stub_for_alt_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/list_item_name"
android:layout="@layout/text_view_alt_name"/>
答案 1 :(得分:5)
我发现的唯一解决方案是为ViewStub和相关的TextView提供相同的android:id
值。
答案 2 :(得分:3)
这是一个老问题,但我有一个有用的补充
1)是的,就像其他人发布的一样 - 使用相同的id
和inflatedId
:
<ViewStub
android:id="@+id/view_stub_id"
android:inflatedId="@id/view_stub_id"
...
/>
2)当您需要充气查看或 刷新其内容时,方便的行为如下:
View v = parentView.findViewById(R.id.view_stub_id);
if (v instanceof ViewStub)
v = ((ViewStub) v).inflate();
// here v is always the inflated view
// ...
答案 3 :(得分:1)
Hi you can try this one.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/list_item_bottom">
//you can add another relative layout containing your textview and imageview
<RelativeLayout
android:id="@+id/layout_content"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView android:id="@+id/list_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView android:id="@+id/list_item_dopinfo1_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/stub_for_alt_name"
android:src="@drawable/ic_released"
android:layout_below="@+id/list_item_name" />
</RelativeLayout>
<ViewStub android:id="@+id/stub_for_alt_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/list_item_name"
android:layout="@layout/text_view_alt_name"
android:layout_below="@+id/layout_content" />
</RelativeLayout>