標籤:
最近有個項目需要使用側邊欄,而且希望是左右兩側都能夠滑出側邊菜單,在網上尋找實現方式時,發現大家用的最多的還是大神jfeinstein10的SlidingMenu庫,地址https://github.com/jfeinstein10/SlidingMenu,通過將開源庫匯入eclipse,並把它作為library引入自己的工程,經過配置就可以實現SlidingMenu的效果,網上有很多例子,大家可以下一個研究研究,初學者可以直接在例子上修改,開發自己的應用,當然這樣不夠嚴謹。
這次開發並沒有採用上面的方式,而是將SlidingMenu開源庫作為架包,通過引入jar包來開發項目,這樣可以將滑動布局以控制項的形式體現出來,使用時比較簡單。本次開發參考的代碼為http://download.csdn.net/download/woaixinxin123/5883503
MainActivity.java
package com.example.slidingmenudemo;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.util.DisplayMetrics;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.RelativeLayout;import android.widget.RelativeLayout.LayoutParams;import com.slidingmenu.lib.SlidingMenu; //引用的SlidigMenu包public class LeftAndRightActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { final SlidingMenu menu = new SlidingMenu(this); Button button = new Button(this); button.setText("left"); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { menu.showMenu(); } }); Button button2 = new Button(this); button2.setText("right"); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { menu.showSecondaryMenu(); } }); RelativeLayout view = new RelativeLayout(this); LayoutParams llp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); llp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); view.addView(button, llp); LayoutParams rlp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); view.addView(button2, rlp); setContentView(view); DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; int height = metric.heightPixels; menu.setMode(SlidingMenu.LEFT_RIGHT); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setShadowDrawable(R.drawable.shadow); menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); menu.setBehindWidth(width*2/3); menu.setFadeDegree(0.35f); menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); menu.setMenu(R.layout.left_menu_frame); menu.setShadowDrawable(R.drawable.shadow); getSupportFragmentManager().beginTransaction().replace(R.id.left_menu_frame, new NavigationFragment()).commit(); //左側菜單介面由NavigationFragment確定
menu.setSecondaryMenu(R.layout.right_menu_frame); menu.setSecondaryShadowDrawable(R.drawable.shadow); //左右兩側滑出菜單樣式可以通過自己寫的Fragment定製,在此不再贅述 }}
Android SlidingMenu 滑出側邊欄