getSupportActionBar()在Marshmallow设备上返回null

时间:2016-12-24 11:56:04

标签: android android-layout android-appcompat

首先,我想说我已经尝试了其他Stackoverflow问题中的几乎所有解决方案。

这是我的style.xml文件(V21)

    <style name="MyMaterialTheme" parent="Theme.AppCompat.Light">
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@android:color/holo_green_light</item>
    <item name="android:colorBackground">@color/background_material_light</item>
    <item name="android:statusBarColor">?android:attr/colorPrimaryDark</item>
</style>

清单

<activity
        android:name=".MainActivity"
        android:theme="@style/MyMaterialTheme"
        android:configChanges="keyboardHidden|orientation|screenSize" />

MainActivity.class

setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(true);

最后一行一直给我Null Pointer Exception错误。

我尝试将主题更改为Theme.AppCompat.Light.NoActionBar,但仍然在同一行上给出了NPE错误。

在我的风格中添加了这些线条,但没有希望。

<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>

我还尝试在工具栏代码中添加和删除以下行,但结果相同。

app:theme="@style/ThemeOverlay.AppCompat.ActionBar"

完整活动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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutDirection="ltr"
tools:context=".MainActivity">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1"
    android:background="@color/activity_bg"
    tools:context="com.myApp.MainActivity"
    >


    <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_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        <TextView
            android:id="@+id/toolbar_title"
            style="@style/TextAppearance.AppCompat.Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:gravity="left"
            android:singleLine="true"
            android:text="Toolbar Title"
            android:textColor="@color/toolbarText" />

    </android.support.v7.widget.Toolbar>

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/BSAmessage"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

    <android.support.design.widget.CoordinatorLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        >

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

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/main_gradient"
            android:id="@+id/top_view"
            android:paddingBottom="15dp"
            android:paddingTop="30dp"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/inputs"
                android:orientation="vertical">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:id="@+id/weight_layout"
                    android:background="@color/white"
                    android:elevation="1dp"
                    android:translationZ="1dp"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="16dp"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingRight="20dp"
                    android:textSize="23sp">

                    <EditText
                        android:id="@+id/weight"
                        android:singleLine="true"
                        android:fontFamily="sans-serif-light"
                        android:layout_width="wrap_content"
                        android:layout_height="60dp"
                        android:layout_weight="3"
                        android:background="@color/white"
                        android:ems="10"
                        android:paddingLeft="20dp"
                        android:hint="Enter weight"
                        android:inputType="numberDecimal"
                        android:maxLength="6"
                        android:textSize="18sp" />

                    <Spinner
                        android:id="@+id/spinner"
                        android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:spinnerMode="dropdown" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:id="@+id/height_layout"
                    android:background="@color/white"
                    android:elevation="1dp"
                    android:translationZ="1dp"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="16dp"
                    android:layout_marginTop="10dp"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingRight="20dp"
                    android:textSize="23sp">

                    <EditText
                        android:id="@+id/height"
                        android:singleLine="true"
                        android:fontFamily="sans-serif-light"
                        android:layout_width="wrap_content"
                        android:layout_height="60dp"
                        android:layout_weight="3"
                        android:paddingLeft="20dp"
                        android:background="@color/white"
                        android:ems="10"
                        android:hint="Enter height"
                        android:inputType="numberDecimal"
                        android:maxLength="6"
                        android:textSize="18sp" />

                    <Spinner
                        android:id="@+id/height_spinner"
                        android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:spinnerMode="dropdown" />

                </LinearLayout>

            </LinearLayout>




            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginTop="20dp"
                android:id="@+id/dark_separator_top"
                android:layout_below="@+id/setWeight"
                android:background="@color/colorPrimaryDark"
                />


            <Switch
                android:fontFamily="sans-serif-light"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="16dp"
                android:textColor="@color/white"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="70dp"
                android:layout_marginRight="70dp"
                android:text="Enable Categories "
                android:id="@+id/categoriesSwitch"
                android:layout_below="@+id/dark_separator_top"
                android:layout_centerHorizontal="true" />

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginTop="10dp"
                android:id="@+id/dark_separator"
                android:layout_below="@+id/categoriesSwitch"
                android:background="@color/colorPrimaryDark"
                />

            <Switch
                android:fontFamily="sans-serif-light"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="16dp"
                android:textColor="@color/white"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="70dp"
                android:layout_marginRight="70dp"
                android:text="BSA MODE "
                android:id="@+id/bsaSwitch"
                android:layout_below="@+id/dark_separator"
                android:layout_centerHorizontal="true" />

            <Button
                android:id="@+id/setWeight"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="64dp"
                android:layout_marginRight="64dp"
                android:background="@drawable/button_main"
                android:onClick="setWeight"
                android:paddingBottom="16dp"
                android:paddingTop="16dp"
                android:text="SET"
                android:elevation="1dp"
                android:translationZ="1dp"
                android:layout_marginTop="26dp"
                android:layout_below="@+id/inputs"
                style="?android:attr/borderlessButtonStyle"
                android:textColor="@color/button_text"
                android:textSize="17sp" />



        </RelativeLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="5dp"
            android:background="@drawable/bigdivider"
            />

    </LinearLayout>

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


            <LinearLayout
                android:layout_marginLeft="64dp"
                android:layout_marginRight="64dp"
                android:layout_marginTop="16dp"
                android:elevation="1dp"
                android:layout_marginBottom="30dp"
                android:id="@+id/currentCollection_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:background="@drawable/main_activity_buttons"
                android:orientation="horizontal"
                android:padding="16dp">

                <ImageView
                    android:layout_width="45dp"
                    android:layout_height="45dp"
                    android:alpha="0.7"
                    android:tint="@color/colorPrimaryDark"
                    android:src="@drawable/ic_view_week_black_48dp" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">


                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="5dp"
                        android:fontFamily="sans-serif"
                        android:textSize="16sp"
                        android:layout_marginTop="5dp"
                        android:id="@+id/currentCollection_title"
                        android:text="Manage Collections"
                        android:textColor="@color/cardview_dark_background" />

                    <TextView
                        android:id="@+id/currentCollection_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif"
                        android:ellipsize="end"
                        android:textSize="16sp"
                        android:singleLine="true"
                        android:gravity="center"
                        android:padding="5dp"
                        android:text="My Default Collection"
                        android:textColor="#ACACAC" />

                </LinearLayout>



            </LinearLayout>


        </LinearLayout>


    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="@dimen/activity_horizontal_margin"
        android:visibility="visible"
        android:id="@+id/BSAmessage"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_alignParentBottom="true"
        android:background="@color/form_color_other">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/white"
            android:textSize="15dp"
            android:gravity="center"
            android:text="BSA will be visible. "
            android:id="@+id/textView3" />

    </LinearLayout>


</RelativeLayout>


<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/menu" />

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

我真的无法理解这是如何运作的!

还有一件事是我的活动延伸AppCompatActivity

0 个答案:

没有答案