Android常用控件之DrawerLayout

目錄:android.support.v4.widget.DrawerLayout

布局xml中:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/drawer_layout"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:fitsSystemWindows="true"
   tools:openDrawer="start">
   
   <!--主界面-->
   <RelativeLayout
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:fitsSystemWindows="true">

       <android.support.v7.widget.Toolbar
           android:id="@+id/toolbar"
           android:layout_width="match_parent"
           android:layout_height="?attr/actionBarSize"
           android:background="#00ffffff" />

       <TextView
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:gravity="center"
           android:text="我是主界面內(nèi)容" />

   </RelativeLayout>

   <!-- 導(dǎo)航菜單 -->
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_gravity="left"
       android:background="#ffffff">

       <TextView
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:gravity="center"
           android:text="我是側(cè)滑菜單內(nèi)容" />

   </LinearLayout>

</android.support.v4.widget.DrawerLayout>

res string資源:

<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>

代碼中:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }

    private void init() {
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        //執(zhí)行這行代碼,菜單欄的標(biāo)題會(huì)顯示
        //setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        //推薦使用,設(shè)置菜單滑動(dòng)監(jiān)聽(原來的drawer.setDrawerListener廢棄)
        drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {

            }

            @Override
            public void onDrawerOpened(View drawerView) {

            }

            @Override
            public void onDrawerClosed(View drawerView) {

            }

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });
    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

補(bǔ)充:

1费韭、必須指定側(cè)滑菜單布局的android:layout_gravity屬性谴返,從左向右滑出菜單:android:layout_gravity = "start"裆站;從右向左滑出菜單:android:layout_gravity = "end"時(shí)信柿,不建議使用left和right5健(該屬性定義菜單的位置扎即,主布局不用寫該屬性)
2吞获、側(cè)滑菜單的寬度可以直接設(shè)置,以dp為單位谚鄙,不建議超過320dp各拷,通常設(shè)置為240dp
3、常用設(shè)置
打開側(cè)拉菜單:

mDrawerLayout.openDrawer(Gravity.LEFT);

關(guān)閉側(cè)拉菜單:

mDrawerLayout.closeDrawer(menu_layout);

菜單是否開啟闷营,開啟返回true烤黍,關(guān)閉返回false:

mDrawerLayout.isDrawerOpen(menu_layout);

4、Toolbar指示按鈕顏色修改方案

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末傻盟,一起剝皮案震驚了整個(gè)濱河市蚊荣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莫杈,老刑警劉巖互例,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異筝闹,居然都是意外死亡媳叨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門关顷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糊秆,“玉大人,你說我怎么就攤上這事议双《环” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵平痰,是天一觀的道長(zhǎng)汞舱。 經(jīng)常有香客問我,道長(zhǎng)宗雇,這世上最難降的妖魔是什么昂芜? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮赔蒲,結(jié)果婚禮上泌神,老公的妹妹穿的比我還像新娘良漱。我一直安慰自己,他們只是感情好欢际,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布母市。 她就那樣靜靜地躺著,像睡著了一般损趋。 火紅的嫁衣襯著肌膚如雪串塑。 梳的紋絲不亂的頭發(fā)上恢氯,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天轿塔,我揣著相機(jī)與錄音溯捆,去河邊找鬼。 笑死括荡,一個(gè)胖子當(dāng)著我的面吹牛高镐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畸冲,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嫉髓,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了邑闲?” 一聲冷哼從身側(cè)響起算行,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苫耸,沒想到半個(gè)月后州邢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡褪子,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年量淌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫌褪。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呀枢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笼痛,到底是詐尸還是另有隱情裙秋,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布缨伊,位于F島的核電站摘刑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏倘核。R本人自食惡果不足惜泣侮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一即彪、第九天 我趴在偏房一處隱蔽的房頂上張望紧唱。 院中可真熱鬧活尊,春花似錦、人聲如沸漏益。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绰疤。三九已至铜犬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轻庆,已是汗流浹背癣猾。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留余爆,地道東北人纷宇。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛾方,于是被迫代替她去往敵國和親像捶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容