перекачка Viewstub - PullRequest
       46

перекачка Viewstub

0 голосов
/ 05 мая 2011

У меня проблема.

Я сдвигаю свой экран в двух областях с помощью 2 ViewStubs.

Но если я надуваю ViewStub, они больше не доступны, и я не могу накачать другой View внутри этого 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();

Ответы [ 2 ]

2 голосов
/ 31 октября 2014

Кажется, что ViewStub не может быть повторно раздут. Он предназначен для раздувания только один раз, затем он удаляется из иерархии представления. Подробнее здесь: https://stackoverflow.com/a/11579271/752781

0 голосов
/ 06 мая 2011

Вот мое решение

rootLayout - это линейный макет, в котором могут находиться ViewStubs.

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

view1:

    <?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">
[...]
...