使用Android的导航视图时显示操作栏上方状态栏的问题

时间:2015-09-02 02:58:42

标签: android android-fragments

我已经使用导航视图添加了导航抽屉到片段,我添加了app compat工具栏。我现在遇到的问题是显示小状态栏,显示工具栏上方的推送通知,时间等。

此图显示当前情况:

enter image description here

我希望它显示的是下图所示的红色部分:

enter image description here

这是片段

中'onCreateView'方法中的代码
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.recyclerview_fragment,container,false);
        if (isAdded()) view.setBackgroundColor(getResources().getColor(R.color.window_background));
        getActivity().setTitle("Choose category");
        mDrawerLayout = (DrawerLayout) view.findViewById(R.id.drawer_layout);
        NavigationView navigationView = (NavigationView) view.findViewById(R.id.navigation_view);
        if (navigationView != null) {
            setupDrawerContent(navigationView);
        }
        // Set a Toolbar to replace the ActionBar.
        Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
        ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);

        // set up the hamburger icon to open and close the drawer
        mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, R.string.open,R.string.close);
        mDrawerLayout.setDrawerListener(mDrawerToggle);
        mDrawerToggle.syncState();
        return view;
    }

这是该片段的XML视图:

<?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"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!--Main content view-->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">
        <android.support.v7.widget.Toolbar
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/toolbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:fitsSystemWindows="true"
            android:minHeight="?attr/actionBarSize"
            app:theme="@style/AppThemeNoActionBar"
            android:background="@color/primary"
            android:textColor="@color/main_white"
            android:elevation="8dp">
        </android.support.v7.widget.Toolbar>
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingLeft="0dp"
            android:paddingRight="0dp"
            android:scrollbars="vertical"
            android:scrollbarStyle="outsideOverlay"/>
    </LinearLayout>

    <!--Nav drawer-->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>

这是该视图的styles.xml文件中的应用主题:

<resources>
    <style name="AppThemeNoActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowBackground">@color/window_background</item>
    </style>
</resources>

如何在上方红色突出显示的工具栏/操作栏上方显示状态栏?

1 个答案:

答案 0 :(得分:0)

好的,我想出了这个,这实际上是我的一个愚蠢的错误。我忘了在AndroidManifest.xml文件中设置主题。我只需要补充一下:

        <activity
            android:name=".activities.GameActivity"
            android:theme="@style/NavDrawerTheme"
            android:label="@string/app_name" >
        </activity>