如何將源生DrawerLayout滿屏顯示只覆蓋ActionBar
阿新 • • 發佈:2018-12-31
昨天在使用DrawerLayout的時候發現無法把actionbar覆蓋過去,也就是全屏高度。
百度了半天,百度不到方法,開個小飛機google一下,第一個就是,無力吐槽。
說解決方法:給DrawerLayout設定一個:
android:fitsSystemWindows="true"
↑這個是核心 注:這個程式碼在程式碼提示裡面不會出現,不過直接打下去是可以用的。
同時將actionbar升級成Toolbar。
注意是同時,依舊使用actionbar的話上面這個屬性是不會有效果的。
因為actionbar不好用,而且有很多的方法已經不推薦了,要使用升級版的更加靈活的Toolbar。
XML:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_fragment_main"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="@color/darkgreen" />
程式碼裡面:
mToolbar = (Toolbar)findViewById(R.id.toolbar_fragment_main);
setSupportActionBar(mToolbar);
這個是Toolbar的設定方法,注意使用Toolbar的時候記得要把actionbar去掉,就是把主題換成Theme.AppCompat.NoActionBar。
或者用request把actionbar去掉,不然會報錯。
然後我做完之後發現Toolbar即使設計了高度還是全屏的,一直變不了,就又仔細看了一下程式碼。
發現我的DrawerLayout下面有3個控制元件,我們知道DrawerLayout下面是隻能有兩個控制元件的。
第一個是外面顯示的控制元件,還有一個就是抽屜裡的控制元件,把前面兩個控制元件用一個LinearLayout包起來就ok了,大家要小心。