Как добавить два фрагмента вместе в frameLayout во время выполнения

Я разрабатываю приложение andorid с navigation drawer, и у меня есть такой макет для просмотра контента:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- As the main content view, the view below consumes the entire
         space available using match_parent in both dimensions. -->

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:dividerHeight="0dp"
        android:divider="@android:color/transparent"
        android:background="@color/default_color"/>
</android.support.v4.widget.DrawerLayout>

Таким образом, я могу добавить и заменить фрагмент при щелчке элемента навигационного ящика. Все в порядке до сих пор.

Но в одном случае при щелчке элемента в навигационном ящике мне нужно показать два фрагмента вместо одного (точно так же, как фрагмент listFragment и details). Как мне это сделать? Должен ли я тогда добавить два фрагмента в макет кадра? Но как? или я должен изменить contentView с другим drawerLayout ? Если да, то как я могу это сделать?


person Kaidul    schedule 13.07.2013    source источник


Ответы (1)


Вы можете просто использовать вложенные фрагменты. Создайте еще один фрагмент, который динамически создаст оба ваших фрагмента и добавит их в свой макет.

Для получения дополнительной информации прочитайте это: http://developer.android.com/about/versions/android-4.2.html#NestedFragments

person MaciejGórski    schedule 13.07.2013
comment
Спасибо за совет. Что я понял из вашего ответа - у меня должен быть один фрагмент для каждого элемента навигации, как и раньше. И один из них имеет два дочерних фрагмента. Верно? Также я знаю, что вложенный фрагмент не поддерживает раздувание из пользовательского интерфейса. Итак, мне нужно динамически создавать эти дочерние фрагменты? - person Kaidul; 14.07.2013
comment
Что ж, я принял твой ответ. Но я столкнулся с новой проблемой и открыл тему здесь. Пожалуйста, просмотрите stackoverflow.com/questions/17638834/ - person Kaidul; 14.07.2013
comment
Итак, вопрос в том, как вы используете два фрагмента для одного действия для планшетов и по одному фрагменту для каждого метода действия с помощью панели навигации? - person Maxrunner; 31.07.2013