在android中我们经常会用到类似于网易新闻客户端中的左侧菜单栏。一般自己手写都比较复杂,而且也会耗费大量的时间,为了提高开发效率,我们可以直接使用一个开源框架SlidingMenu来构建菜单栏。
以我自己写的一个项目为例:在屏幕的左侧构建一个隐藏的菜单栏,布局是Fragment来写的。
器使用方法如下:
1、创建一个自己的类继承于Fragment,并且为它填充好数据,这样左侧菜单栏的整个UI,我们就搭建好了。
代码:
<span style="font-family:SimSun;font-size:14px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">private View view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /** * 加载UI */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = View.inflate(getActivity(), R.layout.list_view, null); return view; } /** * 填充数据 */ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ListView listview = (ListView) view.findViewById(R.id.list_view); listview.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.activity_list_item, android.R.id.text1, getData())); } private List<String> getData() { List<String> list=new ArrayList<String>(); list.add("fragment1"); list.add("fragment2"); list.add("fragment3"); list.add("fragment4"); return list; }</span></span>创建好菜单栏的UI以后,我们就可以创建一个Activity来使用这个菜单栏了,其使用步骤如下:
<span style="font-family:SimSun;font-size:14px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">private SlidingMenu sm; @Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); //设置侧滑菜单的布局 setBehindContentView(R.layout.menu_frame); //设置内容页的布局 setContentView(R.layout.content); //创建一个SlidingMenu对象 sm=getSlidingMenu(); //设置侧滑菜单的位置 sm.setMode(SlidingMenu.LEFT); //设置侧滑菜单的滑动方式,此模式代表全屏都可以滑动 sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //设置侧滑菜单的阴影 sm.setShadowDrawable(R.drawable.shadow); //设置侧滑菜单阴影的宽度 sm.setShadowWidthRes(R.dimen.activity_shadow_width); //设置侧滑菜单剩余的剩余宽度 sm.setBehindOffsetRes(R.dimen.activity_context); SlidingMenuFragment smf=new SlidingMenuFragment(); //拿到Fragment的管理器 FragmentManager fm=getSupportFragmentManager(); //开启事物 fm.beginTransaction() //替换帧布局 .replace(R.id.menu, smf,"menu") //提交事物 .commit(); }</span></span>这样我们一个左侧菜单栏的项目就做好啦,接下来我们就可以去测试啦。如图就是我们需要的效果啦。当然这个是划开的效果,向左滑动,就可以隐藏了,是不是很方便啦。