DrawerLayout ---抽屉效果的导航菜单

DrawerLayout ---抽屉效果的导航菜单_第1张图片

支持需要:android-support-v4.jar
首先, DrawerLayout这个类是在Support Library里的,需要加上android-support-v4.jar这个包。
然后程序中用时在前面导入import android.support.v4.widget.DrawerLayout;
如果找不到这个类,首先用SDK Manager更新一下Android Support Library,然后在Android SDK\extras\android\support\v4路径下找到android-support-v4.jar,复制到项目的libs路径,将其 Add to Build Path.

使用方法:
1.在主布局文件中添加简单的DrawerLayout,可同时添加左右两个抽屉布局,如下:

<?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" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.example.demo.myapplication.MainActivity">

    <!--此处为主界面布局-->
    <LinearLayout  android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar  android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />
        <Button  android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="testbtn"/>

    </LinearLayout>

    <!--此处为抽屉布局,因指定android:layout_gravity="left|bottom",故为左侧抽屉-->
    <LinearLayout  android:id="@+id/mleft_drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left|bottom" android:background="#cccccc" >

        <TextView  android:id="@+id/fab" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:layout_marginTop="40dp" android:layout_marginBottom="40dp" android:background="#FF98DED7" android:text="test" />
    </LinearLayout>

    <!--此处为抽屉布局,因指定android:layout_gravity="right|bottom",故为右抽屉-->
    <LinearLayout  android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="right|bottom" >

        <TextView  android:id="@+id/fabd" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:layout_marginTop="40dp" android:layout_marginBottom="40dp" android:background="#FF98DED7" android:text="test" />
    </LinearLayout>

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

2.java代码中对事件进行监听,可通过按钮的点击事件来控制菜单的展与合,

package com.example.demo.myapplication;

import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    private DrawerLayout mdr;
    private LinearLayout mleft;
    private Button mbtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drawer);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        mdr = (DrawerLayout)findViewById(R.id.main_drawer_layout);
        mleft =(LinearLayout)findViewById(R.id.mleft_drawer);
        mbtn = (Button)findViewById(R.id.btn);
        mbtn.setOnClickListener(mclicklisenter);

    }

    View.OnClickListener mclicklisenter = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(mdr.isDrawerOpen(mleft)){
                mdr.closeDrawer(mleft);
            } else {
                mdr.openDrawer(mleft);
            }
        }
    };
}

详情参考
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html

你可能感兴趣的:(android)