为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

料青山看我应如是 2022-10-12 15:58:27
我有一个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">
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

你activity_student_home不包括你的 DrawerLayout


这个不见了


<include

    layout="@layout/app_bar_student_home"

    android:layout_width="match_parent"

    android:layout_height="match_parent" />


查看完整回答
反对 回复 2022-10-12
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

做你想做的事情的正确方法是(如果我理解你的要求正确的话)使用片段


在你的 app_bar_student_home.xml 里面替换


<include layout="@layout/content_student_home" />

像这样的东西


<FrameLayout

    android:id="@+id/content"

    android:layout_width="match_parent"

    app:layout_behavior="@string/appbar_scrolling_view_behavior"

    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


查看完整回答
反对 回复 2022-10-12
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信