1. 程式人生 > >如何將源生DrawerLayout滿屏顯示只覆蓋ActionBar

如何將源生DrawerLayout滿屏顯示只覆蓋ActionBar

昨天在使用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了,大家要小心。