导航(1) 侧滑菜单导航 可替代AndroidSideMenu
来源:互联网 发布:最新手游服务端源码 编辑:程序博客网 时间:2024/05/18 17:43
如果以前用AndroidSideMenu来实现抽屉式的侧滑菜单的话,现在可以使用官方的这个DrawerLayout布局来代替了。
这个DrawerLayout目前包含在v4版的扩展库中,使用很方便。
效果如下 :
初始时菜单是隐藏的
当手指从左向右滑动时,菜单就会跟着滑出,或点击例子中的按纽也会显示出来。
1. 布局文件
activity_drawerlayout.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- 页面显示内容 --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" ><!-- 单击按键显示菜单 --> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示菜单" /> </FrameLayout> <!-- 左侧导航菜单内容 --> <ListView android:id="@+id/left_drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" android:background="#9400D3" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" /> </android.support.v4.widget.DrawerLayout> </RelativeLayout>布局中是有规则的,这个要注意。
在标签DrawerLayout中,首先要包含一个FrameLayout布局且是第一个布局元素,用于显示默认要显示的布局。 在FrameLayout布局的下方,则是显示在菜单中的控件或布局。 本例中放了一个ListView控件。同时,在例子上放的ListView标签中可以看到有一个 android:layout_gravity="start" 属性设置,这个是要特别注意的。如果没有
它。则运行时,菜单会显示在最上层,覆盖掉你默认要显示的东西。
2.实现代码:
public class DrawerLayoutActivity extends Activity {private DrawerLayout mDrawerLayout = null;private ListView mDrawerList = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//标题栏浮在窗口上 //getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);setContentView(R.layout.activity_drawerlayout);this.setTitle("侧滑菜单导航演示");mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); Button button = (Button) findViewById(R.id.btn); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 按钮按下,将抽屉打开 mDrawerLayout.openDrawer(Gravity.LEFT); } }); initListView();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private void initListView(){ mDrawerList = (ListView) findViewById(R.id.left_drawer); mDrawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, getData())); // Set the list's click listener mDrawerList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //响应事件 } });}private List<String> getData(){ List<String> data = new ArrayList<String>(); data.add("菜单1"); data.add("菜单2"); data.add("菜单3"); data.add("菜单4"); return data;}}
MAIL:xcl_168@aliyun.com
我的CSDN BLOG: http://blog.csdn.net/xcl168
- 导航(1) 侧滑菜单导航 可替代AndroidSideMenu
- Android抽屉/侧滑菜单:开源AndroidSideMenu
- 网页底部圆形可折叠式导航菜单
- 可伸缩右侧边栏导航菜单
- 创建导航抽屉(侧滑菜单)
- table导航条+侧滑菜单+布局
- 导航菜单
- 导航菜单
- 菜单导航
- 导航菜单
- 导航菜单
- 导航菜单
- 菜单导航
- 导航菜单
- 导航菜单
- 导航菜单
- 可放在网页旁边的导航菜单.
- 可滑动展开折叠的jQurey简洁信息导航菜单
- Configuring IPsec VPN with Kerio Control
- 【D3.js数据可视化系列教程】(十九)--交互图表之鼠标悬停
- Raucous Rockers
- oracle 11g ASM 的管理用户 asm shutdown immediate ORA-01031: insufficient privileges
- 揭密一致性读------之UNDO一致性构造
- 导航(1) 侧滑菜单导航 可替代AndroidSideMenu
- nyoj整数划分(二)
- SOAP
- web页面之弹出窗口
- windows7 64位 下配置mysql-5.5.25-winx64
- 跟踪G-Sensor有时不起作用的问题
- 总结篇 工作中犯过的错误(技术方面,工具方面)
- 关于mac环境下php代码无法解析的问题,特此记录!!!
- OCP-1Z0-053-V12.02-369题