Android UI開發第二十八篇——Fragment中使用左右滑動菜單


        Fragment實現了Android UI的分片管理,尤其在平板開發中,好處多多。這一篇將借助Android UI開發第二十六篇——Fragment間的通信、 Android UI開發第二十七篇——實現左右划出菜單 來實現。看圖1的效果,左邊使用LeftFragment實現,中間使用的CenterFragment實現。

public class SlidingActivity extends FragmentActivity implements LeftShowCenter{
	private SlidingMenu mSlidingMenu;
	private CenterFragment centerFragment;
	@Override
	protected void onCreate(Bundle arg0) {
		super.onCreate(arg0);
		setContentView(R.layout.main);

		DisplayMetrics dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);

		mSlidingMenu = (SlidingMenu) findViewById(R.id.slidingMenu);
		mSlidingMenu.setLeftWidth((dm.widthPixels / 5) * 2);
		mSlidingMenu.setRightWidth((dm.widthPixels / 5) * 3);

		View leftView = getLayoutInflater().inflate(R.layout.left_frame, null);
		View rightView = getLayoutInflater().inflate(R.layout.right_frame, null);
		View centerView = getLayoutInflater().inflate(R.layout.center_frame, null);

		mSlidingMenu.setLeftView(leftView);
		mSlidingMenu.setRightView(rightView);
		mSlidingMenu.setCenterView(centerView);

		FragmentTransaction t = this.getSupportFragmentManager()
				.beginTransaction();
		LeftFragment leftFragment = new LeftFragment();
		t.replace(R.id.left_frame, leftFragment);

		RightFragment rightFragment = new RightFragment();
		t.replace(R.id.right_frame, rightFragment);

		centerFragment = new CenterFragment();
		t.replace(R.id.center_frame, centerFragment);
		t.commit();
	}

	public void showLeft() {
		mSlidingMenu.showLeftView();
	}

	public void showRight() {
		mSlidingMenu.showRightView();
	}

	public void showCenter() {
		mSlidingMenu.showCenterView();
	}

	@Override
	public void leftShowCenter(int id) {
		// TODO Auto-generated method stub
		
		if(centerFragment!=null){
			centerFragment.updateView(id);
		}
	}
}

 

 

       SlidingActivity繼承自FragmentActivity,實現了LeftShowCenter的接口方法,LeftShowCenter接口的主要目的是實現Fragment間的通信。

 


                 圖1

 

/**
* @author 張興業
*  iOS入門群:83702688
*  android開發進階群:241395671
*  我的新浪微博:@張興業TBOW
*  我的郵箱:xy-zhang#163.com#->@)
*/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM