如何在一个活动中显示多个片段?

时间:2019-02-14 09:46:43

标签: android android-fragments android-linearlayout android-constraintlayout android-layout-weight

我的问题与此有关:

Multiple Fragments in One Activity

我在平板电脑上的一个活动中显示了三个片段:两个只包含文本(成分和步骤),一个包含Exoplayer和文本。所有片段都包含在各自的框架布局中。我正在使用约束布局作为父布局。由于成分片段中文本的长度,ExoPlayer在纵向和横向模式下均无法统一显示。它应该始终位于该片段的右侧以及“步骤”片段的上方。其他两个片段正确显示在屏幕的左侧。

我曾考虑过使用线性布局并设置布局权重,但随后阅读了几篇不推荐的文章。在这种布局中显示ExoPlayer片段的最佳方法是什么?先感谢您。

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/scroll"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tablet_detail_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        tools:context="annin.my.android.bakingapp.ui.IngredientStepsActivity">
        <!--
        This layout is a two-pane layout for the master/detail flow.
        -->
    <FrameLayout
            android:id="@+id/ingredients_fragment_container"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintBottom_toTopOf="@+id/steps_fragment_container"
            app:layout_constraintVertical_weight="0.4"
            >

        </FrameLayout>

        <FrameLayout
            android:id="@+id/video_fragment_container"
            android:layout_width="wrap_content"
            android:layout_height="250dp"
            android:layout_marginStart="5dp"
            android:layout_marginTop="80dp"
            android:layout_marginEnd="60dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toEndOf="@+id/ingredients_fragment_container"
            app:layout_constraintVertical_weight="0.4" >

        </FrameLayout>

        <FrameLayout
            android:id="@+id/steps_fragment_container"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="40dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/ingredients_fragment_container"
            app:layout_constraintVertical_weight="0.4"
           >

        </FrameLayout>
    </android.support.constraint.ConstraintLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:0)

非常简单,只需制作2个片段,然后为它们分配相应的片段文件,如下所示:

<fragment
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/my_fragment"
    android:name="annin.my.android.bakingapp.ui.Fragment1" />

<fragment
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/my_fragment_2"
    android:name="annin.my.android.bakingapp.ui.Fragment2" />