Navigation Drawer从右侧划出

今天研究了一下NavagationDrawer,看了看Android的demo,drawer是从左往右出来的,感觉应带可以设置成从右往左。

鼓捣半天也不知道怎么弄。后来在stackoverflow上找到的答案。

链接http://stackoverflow.com/questions/18547277/how-to-set-navigation-drawer-to-be-opened-from-right-to-left

要点1

drawer在main.xml中要设置android:layout_gravity="right"

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. Drawer positioning and layout is controlled using the android:layout_gravity attribute on child views corresponding to which side of the view you want the drawer to emerge from: left or right. (Or start/end on platform versions that support layout direction.)  
  2.   
  3. To use a DrawerLayout, position your primary content view as the first child with a width and height of match_parent. Add drawers as child views after the main content view and set the layout_gravity appropriately. Drawers commonly use match_parent for height with a fixed width.  

备注:

android:layout_gravity属性的值,可以是start、end或者left、right

其中left是绝对的左边,start是根据不同的国家习惯改变,比如从右向左阅读顺序的国家,start代表的就是右边。也就是说left、right代表的是绝对的对齐,而start、end代表的是基于阅读顺序的对齐。

要点2

默认是从左向右划出的,如果希望从右向左,需要修改ActionBarDrawerToggle中option选择的函数

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="color:#330033;">mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,  
  2.             R.drawable.ic_drawer, R.string.drawer_open,  
  3.             R.string.drawer_close) {  
  4.   
  5.     @Override  
  6.     public boolean onOptionsItemSelected(MenuItem item) {  
  7.         if (item != null && item.getItemId() == android.R.id.home) {  
  8.             if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {  
  9.                 mDrawerLayout.closeDrawer(Gravity.RIGHT);  
  10.             } else {  
  11.                 mDrawerLayout.openDrawer(Gravity.RIGHT);  
  12.             }  
  13.         }  
  14.         return false;  
  15.     }  
  16. };</span>  

要点3

在Activity的onOptionsItemSelected中添加mDrawerToggle的调用

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. @Override  
  2. public boolean onOptionsItemSelected(MenuItem item) {  
  3.      // The action bar home/up action should open or close the drawer.  
  4.      // ActionBarDrawerToggle will take care of this.  
  5.     if (mDrawerToggle.onOptionsItemSelected(item)) {  
  6.         return true;  
  7.     }  
  8.   
  9.     return super.onOptionsItemSelected(item);  
  10. }  

这样就可以实现从右侧弹出NavagationDrawer了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值