DrawerLayout的使用

DrawerLayout基礎佈局佈局

介紹

佈局中允許放兩個直接的控件

  • 第一個:主屏幕中顯示的內容
  • 第二個:滑動菜單中顯示的內容

佈局代碼

activity_main,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"
    android:id="@+id/drawerlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toorbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#3F51B5"></android.support.v7.widget.Toolbar>

    </FrameLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="DrawerLayout"
        android:layout_gravity="start"/>
</android.support.v4.widget.DrawerLayout>
  • FrameLayout:作爲主屏幕顯示的內容
  • TextView:滑動菜單中顯示的內容

注意

第二個控件,layout_gravity屬性是必須指定的,用於設定DrawerLayout滑動菜單是在屏幕的左邊還是右邊。

  • left:在左邊
  • right:在右邊
  • start:根據系統語言決定

簡單的效果

現在運行就可以啦。當我們在邊緣滑動時才能將菜單拉出來,我們可以進行簡單的提示。

與Toolbar使用

mainActivity.java

public class MainActivity extends AppCompatActivity {
    DrawerLayout drawerlayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toorbar = (Toolbar) findViewById(R.id.toorbar);
        setSupportActionBar(toorbar);

        ActionBar actionBar = getSupportActionBar();
        if (actionBar!=null) {
            //顯示導航欄
            actionBar.setDisplayHomeAsUpEnabled(true);
            //顯示導航欄圖標
            actionBar.setHomeAsUpIndicator(R.drawable.navigation);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                drawerlayout.openDrawer(GravityCompat.START);
                Log.d("MainActivity", "home");
                break;
        }
        return  true;
    }
}
  • getSupportActionBar():得到ActionBar的實例,具體由Toolbar實現。
  • actionBar.setDisplayHomeAsUpEnabled(true):設置導航按鈕圖標
  • actionBar.setHomeAsUpIndicator(R.drawable.navigation):設置周導航按鈕圖標
  • android.R.id.home:導航按鈕id
  • drawerlayout.openDrawer(GravityCompat.START):將菜單滑動出來
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章