0

我有个问题。

我用 2 个 ViewStub 在两个区域滑动我的屏幕。

但是,如果我对 ViewStubs 进行膨胀,它们将不再可访问,并且我无法在此 ViewStub 中膨胀其他视图。

那么使用这些容器的替代方法是什么。

这里有一些代码。你们都喜欢代码:

    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();
4

2 回答 2

2

好像ViewStub不能再充气了。它被设计为只膨胀一次,然后从 View 层次结构中删除。更多细节在这里:https ://stackoverflow.com/a/11579271/752781

于 2014-10-31T14:49:52.453 回答
-1

这是我的解决方案

rootLayout 是一个线性布局,可能存在 ViewStubs。

    rootLayout.removeView(contentLayout);
    inflater.inflate(R.id.view1, rootLayout);
    contentLayout = findViewById(R.id.contentLayout);

视图1:

    <?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">
[...]
于 2011-05-06T09:26:29.227 回答