getSupportActionBar上的NullPointerException

我正在尝试使用androidx显示collapsing_toolbar_layout,我得到了一个 空指针异常。方法getSupportactionBar()返回null

这是我的代码:

    toolbar = findViewById(R.id.toolbar);
    setSupportactionBar(toolbar);

    assert getSupportactionBar() != null;
    getSupportactionBar().setDisplayHomeAsUpEnabled(true); //here the problem.
    getSupportactionBar().setDisplayShowTitleEnabled(true);
    collapsing_toolbar_layout = findViewById(R.id.collapsing_toolbar_layout);
    collapsing_toolbar_layout.setTitle("Title");

以我的风格:

    <item name="windowactionBar">false</item>
    <item name="windowNoTitle">true</item>

这是我的工具栏:

<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="192dp"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:fitsSystemWindows="true"
    style="@style/Theme.MaterialComponents.NoactionBar"
    >
<com.google.android.material.appbar.CollapsingToolbarLayout
    android:id="@+id/collapsing_toolbar_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    app:contentScrim="?attr/colorPrimary"
    app:layout_scrollflags="scroll|exitUntilCollapsed"
    app:toolbarId="@+id/toolbar"
    >

        <ImageView
            android:id="@+id/ivBanderaMain"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/bandera_panama"
            android:scaleType="centerCrop"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="10dp"
            app:layout_collapseMode="parallax"
            />


    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_collapseMode="pin"
        >

    </androidx.appcompat.widget.Toolbar>

</com.google.android.material.appbar.CollapsingToolbarLayout>

</com.google.android.material.appbar.AppBarLayout>

即使使用我的风格的NoactionBar,这也应该有效,因为我 创建我自己的工具栏并进行初始化。但是我仍然得到:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.alcampos.notificame,PID: 9455
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alcampos.notificame/com.alcampos.notificame.Mainactivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.actionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
dashewan333 回答:getSupportActionBar上的NullPointerException

检查是否已通过AppCompatActivity扩展了活动。

然后只需使用以下代码:

  <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

并在您的onCreate()

 final Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(mToolbar);

有关here折叠工具栏执行的更多信息。

本文链接:https://www.f2er.com/3123322.html

大家都在问