侧滑菜单——SlidingMenu的使用
2016-11-17 14:43
288 查看
1、添加SlidingMenu library
2、添加侧拉菜单 //1.将activity改为继承SlidingFragmentActivity,这样activity才能去管理侧拉菜单
public class MainActivity extends SlidingFragmentActivity {
private SlidingMenu slidingMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.content);
//添加侧拉菜单slidingmenu
//2.添加侧拉菜单
//2.1获取侧拉菜单
slidingMenu = getSlidingMenu();
//2.2设置侧拉菜单的布局
setBehindContentView(R.layout.menu);
//2.3设置侧拉的方向
//LEFT : 左边
//LEFT_RIGHT : 左右
//RIGHT : 右边
slidingMenu.setMode(SlidingMenu.LEFT);
//2.4设置侧拉菜单或者内容页的显示宽度
//设置侧拉菜单宽度
//slidingMenu.setBehindWidth(220);//i 表示像素
//slidingMenu.setBehindWidthRes(res);//res 在dimens.xml文件设置宽度
//设置内容页的宽度
//lidingMenu.setBehindOffset(i);//i表示是内容页宽度
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_content_width);
//2.5设置侧拉菜单分割线
//设置分割线的样式
slidingMenu.setShadowDrawable(R.drawable.shadow);
//设置分割线的宽度
//slidingMenu.setShadowWidth(pixels);//pixels:分割线的宽度
slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);//resid:表示dimens.xml设置的参数
//2.6设置滑动范围
//TOUCHMODE_FULLSCREEN : 全屏触摸
//TOUCHMODE_MARGIN : 分隔线触摸
//TOUCHMODE_NONE : 不允许触摸
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
}
3、设置侧拉菜单布局
(1)创建一个MenuFragment的布局文件 menu_left<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</LinearLayout>
(2)2.初始化控件,并设置相应的adapter
4、点击切换fragment
(1)给listview设置条目点击事件//给listview设置条目点击事件
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
Log.i("JAVA","第"+position+"个条目被点击");
}
});
(2)创建各个fragment
//每个fragment中都要去显示布局,填充数据,相同的抽取到父类
public class Fragment0 extends BaseFragment {
}
(3)创建baseFragment,同时各fragemnt继承baseFragment
(4)在条目点击事件中实现切换操作
(5)修改baseFragment中数据显示方式
5、将切换fragment操作移植到Mainactivity
(1)在MainActivity中创建切换fragment操作
/**
* 切换fragment操作
* @param baseFragment
*/
public void switchFragment(BaseFragment baseFragment) {
if (baseFragment!=null) {
getSupportFragmentManager()
.beginTransaction().replace(R.id.content, baseFragment, "HOME").commit();
}
}
(2)在MenuFragment中的切换fragment方法中调用
/**
* 切换fragment操作
* @param fragment0
*/
private void switchFragment(BaseFragment baseFragment) {
//2.1获取fragment管理者
/*getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.content, baseFragment, "HOME").commit();*/
//调用Mainactivity中的switchFragment
//1.判断getactivity是否是Mainactivity
if (getActivity() instanceof MainActivity) {
((MainActivity)getActivity()).switchFragment(baseFragment);
}
}
6、设置右侧滑菜单
(1)添加菜单//4.添加右侧滑菜单
//设置右侧滑菜单布局
slidingMenu.setSecondaryMenu(R.layout.right_menu);
//设置右侧滑菜单分割线
slidingMenu.setSecondaryShadowDrawable(R.drawable.shadow);
(2)设置侧拉方向
//2.3设置侧拉的方向
//LEFT : 左边
//LEFT_RIGHT : 左右
//RIGHT : 右边
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
2、添加侧拉菜单 //1.将activity改为继承SlidingFragmentActivity,这样activity才能去管理侧拉菜单
public class MainActivity extends SlidingFragmentActivity {
private SlidingMenu slidingMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.content);
//添加侧拉菜单slidingmenu
//2.添加侧拉菜单
//2.1获取侧拉菜单
slidingMenu = getSlidingMenu();
//2.2设置侧拉菜单的布局
setBehindContentView(R.layout.menu);
//2.3设置侧拉的方向
//LEFT : 左边
//LEFT_RIGHT : 左右
//RIGHT : 右边
slidingMenu.setMode(SlidingMenu.LEFT);
//2.4设置侧拉菜单或者内容页的显示宽度
//设置侧拉菜单宽度
//slidingMenu.setBehindWidth(220);//i 表示像素
//slidingMenu.setBehindWidthRes(res);//res 在dimens.xml文件设置宽度
//设置内容页的宽度
//lidingMenu.setBehindOffset(i);//i表示是内容页宽度
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_content_width);
//2.5设置侧拉菜单分割线
//设置分割线的样式
slidingMenu.setShadowDrawable(R.drawable.shadow);
//设置分割线的宽度
//slidingMenu.setShadowWidth(pixels);//pixels:分割线的宽度
slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);//resid:表示dimens.xml设置的参数
//2.6设置滑动范围
//TOUCHMODE_FULLSCREEN : 全屏触摸
//TOUCHMODE_MARGIN : 分隔线触摸
//TOUCHMODE_NONE : 不允许触摸
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
}
3、设置侧拉菜单布局
(1)创建一个MenuFragment的布局文件 menu_left<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</LinearLayout>
(2)2.初始化控件,并设置相应的adapter
//设置fragment布局样式 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { // TextView textView = new TextView(getActivity()); // textView.setText("侧拉菜单"); //将布局文件转化成view对象 View view = View.inflate(getActivity(), R.layout.menu_left, null); lv = (ListView) view.findViewById(R.id.lv); //android.R.layout.simple_list_item_1 : android系统设置好的布局文件,其中就只有一个id为text1的textview //android.R.id.text1 : 数据要填充的textivew的id lv.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, initData())); return view; } /** * 设置listview填充数据 * @return */ private List<String> initData() { List<String> list = new ArrayList<String>(); list.add("Fragment0"); list.add("Fragment1"); list.add("Fragment2"); list.add("Fragment3"); list.add("Fragment4"); return list; }
4、点击切换fragment
(1)给listview设置条目点击事件//给listview设置条目点击事件
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
Log.i("JAVA","第"+position+"个条目被点击");
}
});
(2)创建各个fragment
//每个fragment中都要去显示布局,填充数据,相同的抽取到父类
public class Fragment0 extends BaseFragment {
}
(3)创建baseFragment,同时各fragemnt继承baseFragment
public class BaseFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); //.getSimpleName() : 获取一个类的短类名,不包含包名的类型 //baseFragment = new Fragment0(); this : fragment0 textView.setText("baseFragment"); return textView; } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); } }
(4)在条目点击事件中实现切换操作
//给listview设置条目点击事件 lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view,int position, long id) { Log.i("JAVA","第"+position+"个条目被点击"); //切换条目对应的fragment //多态操作,父类引用中保存的子类对象 BaseFragment baseFragment = null; switch (position) { case 0: //切换到fragment0 //1.获取fragment0 baseFragment = new Fragment0(); break; case 1: //切换到fragment1 //1.获取fragment0 baseFragment = new Fragment1(); break; case 2: //切换到fragment2 //1.获取fragment0 baseFragment = new Fragment2(); break; case 3: //切换到fragment3 //1.获取fragment0 baseFragment = new Fragment3(); break; case 4: //切换到fragment4 //1.获取fragment0 baseFragment = new Fragment4(); break; } //2.将fragment0填充到Mainactivity内容页中 switchFragment(baseFragment); } }); /** * 切换fragment操作 * @param fragment0 */ private void switchFragment(BaseFragment baseFragment) { //2.1获取fragment管理者 getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.content, baseFragment, "HOME").commit(); }
(5)修改baseFragment中数据显示方式
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); //.getSimpleName() : 获取一个类的短类名,不包含包名的类型 //baseFragment = new Fragment0(); this : fragment0 textView.setText(this.getClass().getSimpleName()); return textView; }
5、将切换fragment操作移植到Mainactivity
(1)在MainActivity中创建切换fragment操作
/**
* 切换fragment操作
* @param baseFragment
*/
public void switchFragment(BaseFragment baseFragment) {
if (baseFragment!=null) {
getSupportFragmentManager()
.beginTransaction().replace(R.id.content, baseFragment, "HOME").commit();
}
}
(2)在MenuFragment中的切换fragment方法中调用
/**
* 切换fragment操作
* @param fragment0
*/
private void switchFragment(BaseFragment baseFragment) {
//2.1获取fragment管理者
/*getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.content, baseFragment, "HOME").commit();*/
//调用Mainactivity中的switchFragment
//1.判断getactivity是否是Mainactivity
if (getActivity() instanceof MainActivity) {
((MainActivity)getActivity()).switchFragment(baseFragment);
}
}
6、设置右侧滑菜单
(1)添加菜单//4.添加右侧滑菜单
//设置右侧滑菜单布局
slidingMenu.setSecondaryMenu(R.layout.right_menu);
//设置右侧滑菜单分割线
slidingMenu.setSecondaryShadowDrawable(R.drawable.shadow);
(2)设置侧拉方向
//2.3设置侧拉的方向
//LEFT : 左边
//LEFT_RIGHT : 左右
//RIGHT : 右边
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
相关文章推荐
- 侧滑菜单-SlidingMenu的使用
- 如何实现app侧滑菜单,,,SlidingMenu的使用
- SlidingMenu 开源库侧滑菜单的使用
- android侧滑菜单SlidingMenu加上手势滑动及首次运行引导页面混合使用
- 第三方侧滑菜单SlidingMenu在android studio中的使用
- 侧滑菜单SlidingMenu的使用详解
- 侧滑菜单SlidingMenu的简单使用
- Android经典侧滑菜单SlidingMenu使用介绍
- Android经典侧滑菜单SlidingMenu使用介绍
- 第三方侧滑菜单SlidingMenu在android studio中的使用
- android侧滑菜单框架SlidingMenu的使用
- 侧滑菜单-- SlidingMenu 使用详解
- 侧滑菜单NavigationView和SlidingMenu的使用
- android侧滑菜单,slidingmenu集成进androidstudio以及使用
- 高级部分 侧滑菜单框架的使用 SlidingMenu
- 侧滑菜单SlidingMenu的使用方法
- Android侧滑菜单——SlidingMenu详解使用
- android初学------SlidingMenu(侧滑菜单的使用—)
- 使用slidingmenu ,侧滑菜单
- Android侧滑菜单的使用和配置(SlidingMenu)