如何为导航抽屉活动使用自己的布局而不是自动生成的布局?

我有一个navigation drawer activity, 自动生成这些activity_student_home2, app_bar_student_home, content_student_home,nav_header_student_home布局文件。我已经单独创建了activity_student_home布局。


默认情况下activity java class,acitivity_student_home2布局为setContentView. 但相反,我想使用acitivity_student_home布局。


如果我尝试更改为setContentView,acitivity_student_home那么我的navigation drawer view不起作用。如何将acitivity_student_home布局用作setContentView?



activity_student_home 布局:


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

<RelativeLayout 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:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="@drawable/app_back"

    tools:context="bd.edu.bubt.regup.StudentHomeActivity">


    <LinearLayout

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="false"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_marginLeft="60dp"

        android:id="@+id/linearLayout">


        <TextView

            android:id="@+id/showtext"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_marginTop="300dp"

            android:gravity="center"

            android:text="Demo"

            android:textSize="24dp"

            android:textStyle="bold" />


    </LinearLayout>


</RelativeLayout>


activity_student_home2 布局:


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

<android.support.v4.widget.DrawerLayout 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/drawer_layout"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:fitsSystemWindows="true"

    tools:openDrawer="start">


料青山看我应如是
浏览 100回答 2
2回答

慕斯王

你activity_student_home不包括你的 DrawerLayout这个不见了<include&nbsp; &nbsp; layout="@layout/app_bar_student_home"&nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; android:layout_height="match_parent" />

叮当猫咪

做你想做的事情的正确方法是(如果我理解你的要求正确的话)使用片段在你的 app_bar_student_home.xml 里面替换<include layout="@layout/content_student_home" />像这样的东西<FrameLayout&nbsp; &nbsp; android:id="@+id/content"&nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; app:layout_behavior="@string/appbar_scrolling_view_behavior"&nbsp; &nbsp; android:layout_height="match_parent"/>然后创建您希望显示其内容的片段(例如 FragmentA、FragmentB)并将它们的 contentview 设置为您希望显示的不同布局当您希望更改活动的内容时,您可以执行以下操作getSupportFragmentManager().beginTransaction().replace(R.id.content, new FragmentA()).commit();远不止这些,例如,当您希望将片段中的点击事件发送到您的活动时,您必须使用 getActivity() 并将其转换为 MainActivity 的类或使用接口(首选)您可以查看本教程,该教程应该对您有所帮助http://www.androiddocs.com/training/basics/fragments/index.html
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java