片段中的工具栏看起来像导航抽屉,如何使其成为带有下拉菜单的普通工具栏

时间:2016-11-03 16:27:06

标签: android android-fragments

我一直在尝试将自定义工具栏下拉菜单添加到链接到导航抽屉菜单的片段,但该工具只是看起来像另一个半生不熟的导航抽屉。 听到混乱的工具栏下拉菜单的图片 the messed-up toolbar drop-down menu

这样你就不会混淆完全功能的导航抽屉 the fully fuctioning Navigation drawer

只是在styles.xml资源文件中通知您通过键入<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

删除了默认工具栏

这是fragmant的布局,名为fragment_student.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.isaacdixon.navigation.StudentFragment">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:theme="?attr/actionBarTheme"
        android:minHeight="?attr/actionBarSize"
        android:id="@+id/toolbar_student" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Student"
        android:gravity="center"
        android:textSize="35dp"
        android:textStyle="bold"/>



    <android.support.design.widget.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/toolbar_view"
        app:menu="@menu/student_menu"
        >

    </android.support.design.widget.NavigationView>


</FrameLayout>

这是fragment_student.xml菜单,它用于下拉工具栏

  • <item android:id="@+id/student_tb_settings"
        android:title="Settings"
        android:icon="@mipmap/ic_person_black_24dp"/>
    
    <item android:id="@+id/student_tb_other"
        android:title="Other"
        android:icon="@mipmap/ic_settings_black_24dp"/>
    

这是StudentFragment.java文件

package com.example.isaacdixon.navigation;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


/**
 * A simple {@link Fragment} subclass.
 */
public class StudentFragment extends Fragment {


    public StudentFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_student, container, false);
    }

}

1 个答案:

答案 0 :(得分:1)

问题是你做错了什么。您应该将DrawerLayout作为包含内容视图和导航视图的顶视图。

我建议你阅读以下教程:

https://guides.codepath.com/android/Fragment-Navigation-Drawer