Android中使用开源框架SlidingMenu构建左滑菜单栏

来源:互联网 发布:大城市生活 知乎 编辑:程序博客网 时间:2024/05/29 15:53

         在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;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}/** * 加载UI */@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {  view = View.inflate(getActivity(), R.layout.list_view, null);return view;}/** * 填充数据 */@Overridepublic 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;@Overridepublic 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>
          这样我们一个左侧菜单栏的项目就做好啦,接下来我们就可以去测试啦。如图就是我们需要的效果啦。当然这个是划开的效果,向左滑动,就可以隐藏了,是不是很方便啦。

           

0 0
原创粉丝点击