有人能解释一下DrawerLayout中FrameLayout的用途吗?

时间:2015-12-14 13:21:14

标签: android android-fragments android-framelayout

FrameLayout中使用DrawerLayout用于安卓。 有人可以解释一下FrameLayoutDrawerLayout的使用情况吗?

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context="com.example.tuljain.requests.MainActivity">
    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout>
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal"
            android:id="@+id/frameholder">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Large Text"
                android:id="@+id/tw3"
                android:layout_centerVertical="true"
                android:layout_centerHorizontal="true" />
        </FrameLayout>
        <ListView
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:id="@+id/drawer"
            android:dividerHeight="1dp"
            android:entries="@array/planet"
            android:divider="#d3d3d3"
            android:background="@color/drawerlayouttransparent">
        </ListView>

    </android.support.v4.widget.DrawerLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:1)

基本上,DrawerLayout有两个组成部分:

  1. 抽屉本身 - 充当遥控器。单击抽屉项目,抽屉将关闭,并且应在容器区域中打开一个新屏幕。
  2. 容器 - 充当不同屏幕的容器,当您单击抽屉项目时将打开这些容器。它可以是任何布局,而不仅仅是FrameLayout ..
  3. 抽屉示例:

    Drawer

    FrameLayout的示例:请注意,您无法识别其FrameLayout enter image description here

答案 1 :(得分:0)

参考:http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html

  

要使用DrawerLayout,请将主要内容视图定位为第一个   宽度和身高

的孩子

通常,Frame Layout用于加载不同的视图(不同片段的布局)

在上面的代码中,您只有一个活动/ u需要导航抽屉只能在一个地方使用衬里布局替换帧布局

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/tw3"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

</LinearLayout> 

如果您在所有/多个页面中使用此导航抽屉,如果您不使用框架,则需要复制所有xml文件中的导航抽屉代码。所以使用Frame布局和片段我们避免这种情况。