博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android SlidingMenu 滑出侧边栏
阅读量:5253 次
发布时间:2019-06-14

本文共 3185 字,大约阅读时间需要 10 分钟。

  最近有个项目需要使用侧边栏,而且希望是左右两侧都能够滑出侧边菜单,在网上查找实现方式时,发现大家用的最多的还是大神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定制,在此不再赘述    }}

 

转载于:https://www.cnblogs.com/fansen/p/4849181.html

你可能感兴趣的文章
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
验证组件FluentValidation的使用示例
查看>>
0320-学习进度条
查看>>
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>
MetaWeblog API Test
查看>>
反弹SHELL
查看>>
关闭Chrome浏览器的自动更新和升级提示
查看>>
移动、尺寸改变
查看>>
缓存三大问题
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
子网划分讲解及练习(一)
查看>>
c# 文件笔记
查看>>