DrawerLayout的基本使用
2016-03-21 17:36
344 查看
DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类。使用DrawerLayout可以轻松的实现抽屉效果,使用DrawerLayout的步骤有以下1几点:
1)在DrawerLayout中,第一个子View必须是显示内容的view,并且设置它的layout_width和layout_height属性是match_parent.
2)第二个view是抽屉view,并且设置属性layout_gravity="left|right",表示是从左边滑出还是右边滑出。设置它的layout_height="match_parent"
eg:
activity_main.xml 布局文件
?
MainActivity.java 代码
注意:在android抽屉Drawer_layout开发中,需要关闭手势滑动,来滑出弹出框
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); //关闭手势滑动
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); //打开手势滑动
还有一种方式比较暴力 直接移除view 免得碍事
mDrawer_layout.remove(View)
1)在DrawerLayout中,第一个子View必须是显示内容的view,并且设置它的layout_width和layout_height属性是match_parent.
2)第二个view是抽屉view,并且设置属性layout_gravity="left|right",表示是从左边滑出还是右边滑出。设置它的layout_height="match_parent"
eg:
activity_main.xml 布局文件
?
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/frag" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/listview" android:layout_width="80dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="#FFB5C5" /> </android.support.v4.widget.DrawerLayout>
MainActivity.java 代码
package com.example.drawlayout; import android.os.Bundle; import android.app.Activity; import android.support.v4.widget.DrawerLayout; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.FrameLayout; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity implements OnItemClickListener { private FrameLayout frag; private ListView listview; private TextView textView; private LayoutParams params; private DrawerLayout mDrawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout); frag = (FrameLayout) findViewById(R.id.frag); listview = (ListView) findViewById(R.id.listview); String[] strs = { "新闻", "体育", "视频", "天气", "直播" }; listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, strs)); textView = new TextView(this); params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); listview.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { frag.removeAllViews(); switch (position) { case 0: textView.setText("新闻"); frag.addView(textView, params); mDrawerLayout.closeDrawers(); break; case 1: textView.setText("体育"); frag.addView(textView, params); mDrawerLayout.closeDrawers(); break; case 2: textView.setText("视频"); frag.addView(textView, params); mDrawerLayout.closeDrawers(); break; case 3: textView.setText("天气"); frag.addView(textView, params); mDrawerLayout.closeDrawers(); break; case 4: textView.setText("直播"); frag.addView(textView, params); mDrawerLayout.closeDrawers(); break; } } }
注意:在android抽屉Drawer_layout开发中,需要关闭手势滑动,来滑出弹出框
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); //关闭手势滑动
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); //打开手势滑动
还有一种方式比较暴力 直接移除view 免得碍事
mDrawer_layout.remove(View)
相关文章推荐
- mysql数据库的一些简单的sql语句 内连接 - 表的关联查询
- C++ const实现原理
- Android-图片的上传及加载
- WPF 嵌入百度地图完整实现详解
- AppBuilder(三)BuildInternal
- 三种经典iPhone上网络抓包方法详解
- 一些很棒的js代码
- MySQL版本区别5.5与5.7之DEFAULT CURRENT_TIMESTAMP
- 新手做LeetCode(15. 3Sum)
- Redis 学习 ---- 7.压缩列表
- 3月14日高项作业(项目管理一般知识及立项管理)
- redis配置
- iOS UITextField文字输入监听事件
- Matlab投影仿真及三维曲面重构实现及演示程序
- 应用:统计数字
- 分类(category)非正式协议
- 分类(category)的使用和注意事项
- 分类(category)声明与实现
- 分类(category)的概念与使用
- ARC 的兼容与转换