使用SlidingMenu和DrawerLayout分别实现左右侧边栏(烟台杰瑞教育Android培训部原创).docx_第1页
使用SlidingMenu和DrawerLayout分别实现左右侧边栏(烟台杰瑞教育Android培训部原创).docx_第2页
使用SlidingMenu和DrawerLayout分别实现左右侧边栏(烟台杰瑞教育Android培训部原创).docx_第3页
使用SlidingMenu和DrawerLayout分别实现左右侧边栏(烟台杰瑞教育Android培训部原创).docx_第4页
使用SlidingMenu和DrawerLayout分别实现左右侧边栏(烟台杰瑞教育Android培训部原创).docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

烟台杰瑞教育科技有限公司(Android开发培训部) 版权所有 使用SlidingMenu和DrawerLayout分别实现左右侧边栏一、问题描述侧边栏是Android应用中十分常见的界面效果,可随主屏在左侧或右侧联动,是特别适应手机等小屏幕特性的典型界面设计方案之一,常用作应用的操作菜单,如图所示实现侧边栏可以使用第三方组件slidingmenu实现和Google官方提供的滑动抽屉组件DrawerLayout实现,下面就分别使用这两种方法实现左右滑动的侧边栏二、先使用之前讲过的ActionBar制作标题栏这里只贴出代码,相关知识请查阅Android典型界面设计(4)使用ActionBar+Fragment实现tab切换protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initActionBar(); private void initActionBar() actionBar=super.getActionBar(); actionBar.show(); actionBar.setDisplayShowHomeEnabled(true); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R._btn); actionBar.setDisplayShowCustomEnabled(true); TextView tvTitle=new TextView(this); tvTitle.setText(主 页); tvTitle.setTextColor(Color.WHITE); tvTitle.setTextSize(18); tvTitle.setGravity(Gravity.CENTER); LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); tvTitle.setLayoutParams(params); actionBar.setCustomView(tvTitle); ActionBar样式: #218FCC 150dip android:color/transparent 20dip style/actionbar_style菜单:(右侧头像按钮) 三、使用slidingmenu实现private SlidingMenu slidingMenu; private void initSlidingMenu() slidingMenu=new SlidingMenu(this);/创建侧边栏 /设置菜单模式,LEFT(仅左侧边栏) RIGHT(仅右侧边栏) /LEFT_RIGHT(左右侧边栏) slidingMenu.setMode(SlidingMenu.LEFT_RIGHT); slidingMenu.setMenu(R.layout.menu_left_layout);/设置第一个(左)侧边栏 /设置第二个(右)侧边栏,若设置LEFT_RIGHT模式使用该方法设置右侧边栏 slidingMenu.setSecondaryMenu(R.layout.navigation_layout); /将侧边栏粘连到Activity上 slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); /设置侧边栏阴影大小 slidingMenu.setShadowWidth(10); /设置偏离距离 slidingMenu.setBehindOffsetRes(R.dimen.sliding_menu_offset); /全屏模式,全屏滑动都可打开 slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 在onCreate()中调用initSlidingMenu()方法实现SlidingMenu的构建protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initActionBar();initSlidingMenu(); 到此滑动左右屏幕就出现侧边栏了,下面实现单击Actionbar两端按钮实现左右侧边栏的显示控制,代码如下:Override public boolean onOptionsItemSelected(MenuItem item) switch(item.getItemId() case android.R.id.home:/左侧home区域 slidingMenu.toggle();/交替显示或隐藏侧边栏 break; case R.id.usersetting:/右侧按钮菜单 if(!slidingMenu.isSecondaryMenuShowing() slidingMenu.showSecondaryMenu();/显示右侧栏 else slidingMenu.toggle();/通过toggle方法隐藏右侧边栏 break; return super.onOptionsItemSelected(item); Ok完成,至于左右侧边栏的布局文件menu_left_layout 和navigation_layout,大家可自己简单设计一下或见源代码四、使用drawerLayout实现drawerLayout的使用也很方便,drawerLayout其实是一个布局控件,跟LinearLayout等控件是一种东西,但是drawerLayout带有滑动的功能。只要按照drawerLayout的规定布局方式写完布局,就能有侧滑的效果。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏。有两点要注意:主内容区的布局代码要放在侧滑菜单布局的前面,这可以帮助DrawerLayout判断谁是侧滑菜单,谁是主内容区;侧滑菜单的部分通过设置layout_gravity属性,决定侧滑菜单是在左边还是右边 ,layout_gravity属性为start表示左侧边栏,end表示右侧边栏1、Activity的布局如下: menu_left_layout 和navigation_layout 为左右侧边栏的布局文件2、Activiy代码public class MainActivity extends Activity private DrawerLayout drawerLayout; private ActionBarDrawerToggle toggle; private ActionBar actionBar; protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initActionBar(); initDrawerLayout(); private void initDrawerLayout() drawerLayout=(DrawerLayout)super.findViewById(R.id.drawer_layout); drawerLayout.setScrimColor(Color.TRANSPARENT); toggle=new ActionBarDrawerToggle(this,drawerLayout, R.drawable.back_move_details_normal,R.string.drawer_open ,R.string.drawer_close) public void onDrawerClosed(View drawerView) super.onDrawerClosed(drawerView); public void onDrawerOpened(View drawerView) super.onDrawerOpened(drawerView); ; drawerLayout.setDrawerListener(toggle); private void toggleLeftSliding()/该方法控制左侧边栏的显示和隐藏 if(drawerLayout.isDrawerOpen(Gravity.START) drawerLayout.closeDrawer(Gravity.START); else drawerLayout.openDrawer(Gravity.START); private void toggleRightSliding()/该方法控制右侧边栏的显示和隐藏 if(drawerLayout.isDrawerOpen(Gravity.END) drawerLayout.closeDrawer(Gravity.END); else drawerLayout.openDrawer(Gravity.END); Override public boolean onOptionsItemSelected(MenuItem item) switch(item.getItemId() case andr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论