Android UI开发第二十八篇——Fragment中使用左右滑动菜单

  

        Fragment实现了Android UI的分片管理,尤其在平板开发中,好处多多。这一篇将借助Android UI开发第二十六篇——Fragment间的通信、 Android UI开发第二十七篇——实现左右划出菜单 来实现。看图1的效果,左边使用LeftFragment实现,中间使用的CenterFragment实现。


[java]  view plain copy print ?
  1. public class SlidingActivity extends FragmentActivity implements LeftShowCenter{  
  2.     private SlidingMenu mSlidingMenu;  
  3.     private CenterFragment centerFragment;  
  4.     @Override  
  5.     protected void onCreate(Bundle arg0) {  
  6.         super.onCreate(arg0);  
  7.         setContentView(R.layout.main);  
  8.   
  9.         DisplayMetrics dm = new DisplayMetrics();  
  10.         getWindowManager().getDefaultDisplay().getMetrics(dm);  
  11.   
  12.         mSlidingMenu = (SlidingMenu) findViewById(R.id.slidingMenu);  
  13.         mSlidingMenu.setLeftWidth((dm.widthPixels / 5) * 2);  
  14.         mSlidingMenu.setRightWidth((dm.widthPixels / 5) * 3);  
  15.   
  16.         View leftView = getLayoutInflater().inflate(R.layout.left_frame, null);  
  17.         View rightView = getLayoutInflater().inflate(R.layout.right_frame, null);  
  18.         View centerView = getLayoutInflater().inflate(R.layout.center_frame, null);  
  19.   
  20.         mSlidingMenu.setLeftView(leftView);  
  21.         mSlidingMenu.setRightView(rightView);  
  22.         mSlidingMenu.setCenterView(centerView);  
  23.   
  24.         FragmentTransaction t = this.getSupportFragmentManager()  
  25.                 .beginTransaction();  
  26.         LeftFragment leftFragment = new LeftFragment();  
  27.         t.replace(R.id.left_frame, leftFragment);  
  28.   
  29.         RightFragment rightFragment = new RightFragment();  
  30.         t.replace(R.id.right_frame, rightFragment);  
  31.   
  32.         centerFragment = new CenterFragment();  
  33.         t.replace(R.id.center_frame, centerFragment);  
  34.         t.commit();  
  35.     }  
  36.   
  37.     public void showLeft() {  
  38.         mSlidingMenu.showLeftView();  
  39.     }  
  40.   
  41.     public void showRight() {  
  42.         mSlidingMenu.showRightView();  
  43.     }  
  44.   
  45.     public void showCenter() {  
  46.         mSlidingMenu.showCenterView();  
  47.     }  
  48.   
  49.     @Override  
  50.     public void leftShowCenter(int id) {  
  51.         // TODO Auto-generated method stub  
  52.           
  53.         if(centerFragment!=null){  
  54.             centerFragment.updateView(id);  
  55.         }  
  56.     }  
  57. }  

       SlidingActivity继承自FragmentActivity,实现了LeftShowCenter的接口方法,LeftShowCenter接口的主要目的是实现Fragment间的通信。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值