Android DrawerLayout 侧滑菜单

来源:互联网 发布:手机qq当前网络不可用 编辑:程序博客网 时间:2024/05/16 06:02

在build.gradle中添加appcompat-v7支持
如果是在Android Studio 1.0 RC4上创建的项目,默认添加appcompat-v7支持了,如果不是最新版AS则需要在build.gradle中添加代码:

 compile 'com.android.support:appcompat-v7:23.4.0'

效果如下图

需要注意一点:
主内容区的布局代码要放在侧滑菜单布局的前面

使用很简单,看了就懂

MainActivity:

package wkk.demo16;import android.os.Bundle;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.view.Gravity;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private Button open;    private DrawerLayout drawerLayout;    private TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        drawerLayout= (DrawerLayout) findViewById(R.id.drawerLayout);        textView= (TextView) findViewById(R.id.text);        open= (Button) findViewById(R.id.open);        //设置边界滑动关闭        //drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);        //设置边界滑动打开   默认打开        drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);        open.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //打开菜单                drawerLayout.openDrawer(Gravity.LEFT);            }        });        textView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(MainActivity.this,"点击了侧滑菜单",Toast.LENGTH_SHORT).show();                //关闭菜单                drawerLayout.closeDrawers();            }        });        //设置监听        drawerLayout.setDrawerListener(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) {            }        });        //判断侧滑菜单是否打开        drawerLayout.isDrawerOpen(Gravity.LEFT);    }}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/drawerLayout"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:fitsSystemWindows="true">    <!-- 主布局内容-->    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical">        <Button            android:id="@+id/open"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="点击打开菜单" />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/app_name" />    </LinearLayout>    <!-- 侧滑菜单内容 也可以写在右边-->    <LinearLayout        android:layout_width="330dp"        android:layout_height="match_parent"        android:layout_gravity="left"        android:background="#ffffff">        <TextView            android:id="@+id/text"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="侧滑菜单内容" />    </LinearLayout></android.support.v4.widget.DrawerLayout>

源码下载:
http://download.csdn.net/detail/w18756901575/9547141

0 0
原创粉丝点击