Android DrawerLayout 侧滑菜单
16lz
2021-01-23
在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
更多相关文章
- android布局中容易混淆的几个属性
- 两种方式实现Android侧滑菜单
- Android StaggeredGridLayoutManager布局RecyclerView在滚动状态
- android EditText长按屏蔽ActionMode context菜单但保留选择工具
- android横竖屏切换和布局的问题
- Android UI开发篇之 ViewPager+九宫格布局 实现左右滑动
- android之内容提供者解析