DrawerLayout 侧滑菜单
来源:互联网 发布:见父自然知孝 编辑:程序博客网 时间:2024/05/21 20:41
DrawerLayout 提供
1、当界面弹出的时候,主要内容区会自动背景变黑,当点击内容区的时候,抽屉布局会消失
2、在屏幕边缘手势滑动 会拉出抽屉布局
1、当界面弹出的时候,主要内容区会自动背景变黑,当点击内容区的时候,抽屉布局会消失
2、在屏幕边缘手势滑动 会拉出抽屉布局
注意:当按后退键的时候,如果抽屉布局正在显示,则需要关闭抽屉布局
首先布局文件:
布局分为三部分,左中右。中间的是APP显示的主要内容区,然后看你个人的需求来选择是要左边弹出布局,还是右边弹出布局。
如果选择是左边弹出界面还是右边弹出界面,只要给弹出界面设设置
自动打开抽屉
mdrawerLayout.openDrawer(Gravity.LEFT);//这里设置的方向应该跟下面xml文件里面的gravity方向相同,不然会报错,start和LEFT都为从左边出现
mdrawerLayout.closDrawers();//没有参数,关闭所有的出现的抽屉
<android.support.v4.widget.DrawerLayout android:id="@+id/dl" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 界面主要内容布局区 --> <FrameLayout android:id="@+id/fl" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout> <!-- 左边弹出布局区 --> <!-- 和drawerLayout配合需要配这两个属性 android:layout_gravity="left" //这个值必须要指定,start是从左侧拖拽出菜单,end是从右侧 android:choiceMode="singleChoice" --> <ListView android:id="@+id/lv" android:layout_gravity="left" android:choiceMode="singleChoice" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </android.support.v4.widget.DrawerLayout>
//主方法public class MainActivity extends AppCompatActivity { FrameLayout fl; private ListView lv; private DrawerLayout dl; private ArrayList<String> lists; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = findViewById(R.id.lv); fl = (FrameLayout) findViewById(R.id.fl); dl = findViewById(R.id.dl); //获取数据给listview加数据 initData(); //ListView的点击监听事件 setListener(); //DrawerLayout的监听 setDrawerLayoutListener(); } private void setDrawerLayoutListener() { /** * 当抽屉滑动状态改变的时候被调用 * 状态值是STATE_IDLE(闲置--0), STATE_DRAGGING(拖拽的--1), STATE_SETTLING(固定--2)中之一。 * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE */ dl.setDrawerListener(new DrawerLayout.DrawerListener() { /** * 当抽屉被滑动的时候调用此方法 * slideOffset 表示 滑动的幅度(0-1) */ @Override public void onDrawerSlide(View drawerView, float slideOffset) { Log.i("drawer", slideOffset + ""); } /** * 当一个抽屉被完全打开的时候被调用 */ @Override public void onDrawerOpened(View drawerView) { Log.i("drawer", "抽屉被完全打开了!"); } /** * 当一个抽屉完全关闭的时候调用此方法 */ @Override public void onDrawerClosed(View drawerView) { Log.i("drawer", "抽屉被完全关闭了!"); } @Override public void onDrawerStateChanged(int newState) { Log.i("drawer", "drawer的状态:" + newState); } }); } private void initData() { lists = new ArrayList<>(); for (int i = 0; i < 5; i++) { lists.add("DrawerLayout"+i); } ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, lists); lv.setAdapter(stringArrayAdapter); } private void setListener() { lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { f1 f1=new f1(); Bundle b=new Bundle(); b.putString("list", lists.get(i)); f1.setArguments(b); getSupportFragmentManager().beginTransaction().replace(R.id.fl,f1).commit(); //关闭drawer dl.closeDrawer(lv); } }); }}
阅读全文
0 0
- DrawerLayout侧滑菜单
- DrawerLayout---侧滑菜单
- DrawerLayout 侧滑菜单
- Drawerlayout侧滑菜单
- Drawerlayout侧滑菜单
- 侧滑菜单-drawerLayout
- DrawerLayout侧滑菜单
- DrawerLayout 侧滑菜单
- 侧滑菜单DrawerLayout
- 侧滑菜单 DrawerLayout
- android 侧滑菜单DrawerLayout
- Android侧滑菜单DrawerLayout
- Android DrawerLayout-侧滑菜单
- 侧滑菜单 Drawerlayout navigationView
- DrawerLayout实现侧滑菜单
- 侧滑菜单之 DrawerLayout
- Android DrawerLayout 侧滑菜单
- Android侧滑菜单-DrawerLayout
- CSS中:visited链接伪类的怪癖
- Mysql 字段拼接
- TP5 小知识
- 如何用 css 修出好看的照片
- 牛客网---2016---搜狐发奖金
- DrawerLayout 侧滑菜单
- 记录一次spring mvc事务不起作用的解决方案
- (算法分析Week10)Letter Combinations of a Phone Number[Medium]
- Python文件操作
- DDoS攻击之SSL Flood攻击
- 机器学习(十):随机森林与Bagging
- Model2 应用程序概述
- TP3.2.3 Excel导出
- EXT borderLayout图解(初学有用)