我有一个问题。
我使用2个ViewStub将屏幕滑入两个区域。
但如果我对ViewStubs进行了充气,那么他们就无法访问了,而且我无法在这个ViewStub中膨胀其他视图。
那么使用这些容器的替代方法是什么。
这里有一些代码。你们都喜欢Code:
ViewStub contentSpace = (ViewStub) findViewById(R.id.ContentSpace);
contentSpace.setLayoutResource(R.layout.view1);
contentSpace.inflate();
contentSpace.setInflatedId(R.id.Content);
RelativeLayout content = (RelativeLayout) findViewById(R.id.Content);
contentSpace.setLayoutResource(R.layout.view1); //crash
contentSpace.inflate();
答案 0 :(得分:2)
似乎ViewStub
无法重新充气。它被设计为仅膨胀一次,然后从View层次结构中删除。更多详情:https://stackoverflow.com/a/11579271/752781
答案 1 :(得分:0)
这是我的解决方案
rootLayout是ViewStubs所在的线性布局。
rootLayout.removeView(contentLayout);
inflater.inflate(R.id.view1, rootLayout);
contentLayout = findViewById(R.id.contentLayout);
厂景:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:id="@+id/contentLayout">
[...]