我正在尝试使用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