SlidingMenu侧拉菜单
2016-01-18 16:36
113 查看
SlidingMenu侧拉菜单
这次写的是侧拉菜单,相信这个功能方便而且炫酷,一直想学,之前觉得很难,不过利用开源的库函数之后就觉得实现起来很简单了首先你的下载
sliding-menu开源项目然后导入你新建的包,
导完项目就按照下面的五个步骤来实现
当然新建的SlidingMenu_GM的res也就直接用已经写好的资源文件等会描述,其实很简单
1,设置侧拉菜单大小
2,设置内容页和侧拉菜单分割线(颜色渐变效果)
<shape>
</shape>
(设置分割线的宽度)
3,指明侧拉菜单所在的方向
4,指明拖拽区域
5,设置侧拉菜单的布局文件
这里贴出java代码和部分布局文件,代码非常详细了
MainActivity.java代码
package com.example.slidingmenu_gm; import android.os.Bundle; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; public class MainActivity extends SlidingFragmentActivity{ private SlidingMenu slidingMenu; //继承SlidingFragmentActivity,下面的方法改为public @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //设置关联的布局文件 setBehindContentView(R.layout.menu_frame); //获取侧拉菜单 slidingMenu =getSlidingMenu(); //内容页的宽度大小值 slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); //设置内容页和侧拉菜单的分割线,或者用图片 //<shape>可以设置颜色渐变 slidingMenu.setShadowDrawable(R.drawable.shadow); //设置渐变图片的宽度值 slidingMenu.setShadowWidthRes(R.dimen.shadow_width); //设置侧拉菜单的左边方向 slidingMenu.setMode(SlidingMenu.LEFT); //指明拖拽区域,1边缘拖拽,随意拖拽,不能拖拽 //这里选择随意拖拽TOUCHMODE_FULLSCREEN //指向内容页的拖拽 //这个是侧拉菜单区域,不要用这个, //不然里面的事件不能处理了slidingMenu.setTouchModeBehind(i); slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //左侧侧拉条目对应的fragment对象 MenuFragment menuFragment =new MenuFragment(); getSupportFragmentManager() .beginTransaction() //需要去替换左侧侧拉帧布局的id2.fragment对象3,唯一标识 .replace(R.id.menu, menuFragment, "MENU") .commit(); } }
//这个MenuFragment.java 函数用于给侧拉菜单添加控件等到
package com.example.slidingmenu_gm; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class MenuFragment extends Fragment { //初始化 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } //xml--->view,就是Fragment要去展示的View.类似 //activity中的setContent() @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); textView.setText("这是左侧拉条目"); //返回要替换的view return textView; } @Override public void onActivityCreated(Bundle savedInstanceState) { // 获取数据操作,数据填充Fragment中的onCreView返回的view super.onActivityCreated(savedInstanceState); } }
这是侧拉菜单的布局menu_frame.xml就一个FramLayout
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/menu" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout>
实现的效果图,可以触屏滑动
相关文章推荐
- Debug 模式 和 Release 模式下,一个线程在"编译"上引发的问题
- 解决eclipse中egit中的cannot open git-upload-pack问题
- HIS(医院信息系统HospitalInformationSystem)
- Fold Change和t分布
- 答案是什么
- 关于C++ const 的全面总结
- Scala编程之螺旋
- Log4j.properties配置
- FT系列touch---------suspend和resume的实现
- 逗号表达式
- php中__autoload()方法详解
- IOS开发教程--关于点击IPHONE手机标题栏无法滚动到最顶端问题
- 深入学习jQuery Validate表单验证(二)
- PHP 5.0 的 新特性
- php中的short_open_tag的作用
- ORA-28001: the password has expired
- android中常见的内存泄露场景
- 备忘录模式
- excel 中任意几个数相加后等于一个数
- 网站发布后在IIS上定时执行任务