下载SlIDingMenu,https://github.com/jfeinstein10/SlIDingMenu
导入library
我们项目右键==>PropertIEs==>AndroID==>library add 添加第三方项目为依赖
出现这个错误:Found 2 versions of androID-support-v4.jar in the dependency List
因为第三方项目中的androID-support-v4.jar包和我们项目中的冲突了,使用我们的jar包覆盖第三方项目的就可以了
当前activity继承SlIDingFragmentActivity,重写onCreate()方法,
调用setBehIDContentVIEw(),设置滑动菜单的布局文件,参数:资源ID
获取SlIDingMenu对象,通过getSlIDingMenu()方法
调用SlIDingMenu对象的setMode()方法,设置左边划出,参数:SlIDingMenu.left
调用SlIDingMenu对象的setBehinDWIDthRes(),设置菜单的宽度,参数:宽度dimen资源
调用SlIDingMenu对象的setShadowDrawable()方法,设置菜单阴影,参数:shape资源文件
shape资源文件,添加根节点<shape>
添加渐变节点,<gradIEnt>,设置开始颜色androID:startcolor=”#000000”
设置中间颜色,androID:centercolor=”2D000000”
设置结束颜色,androID:endcolor=”5A000000”
调用SlIDingMenu对象的setShadowWIDth(),设置阴影的宽度,参数:宽度
调用SlIDingMenu对象的settouchModeAbove()方法,设置滑动的范围,
参数:SlIDingMenu.touchMODE_FulLSCREEN 全屏
SlIDingMenu.touchMODE_NONE 不允许滑动
调用requestwindowFeature(),参数:Window.FEATURE_NO_Title,去掉Title
创建Fragment
新建一个包xxx.fragment,新建一个MenuFragment,继承v4包里的Fragment
重写onCreate()
重写onCreateVIEw(),传递进来LayoutInflater对象
新建一个布局文件,List_vIEw.xml,里面放一个ListVIEw控件,调用LayoutInflater对象inflate()方法,转成VIEw对象
重写onActivityCreated(),当activity创建的时候
调用VIEw对象的findVIEwByID(),获取ListVIEw对象
调用ListVIEw对象的setAdapter()方法,设置适配器,参数:Adapter对象
获取ArrayAdapter对象,构造方法,参数:上下文,布局资源,文本控件ID,数据List
上下文(getActivity()),布局资源使用系统的androID.R.layout.simple_List_item1
文本ID androID.R.ID.text1,数据
替换布局
在activity中,获取Fragment对象,把menu布局替换成这个Fragmenu
获取Fragment对象,new MenuFragment()
调用getSuportFragment().beginTransaction().replace().commit()来替换
replace()方法,参数:布局ID,fragment对象
MainActivity.java
package com.qingguow.news;import com.jeremyfeinstein.slIDingmenu.lib.SlIDingMenu; com.jeremyfeinstein.slIDingmenu.lib.app.SlIDingFragmentActivity; com.qingguow.news.fragment.MenuFragment; androID.app.Activity; androID.os.Bundle; androID.vIEw.Menu; androID.vIEw.MenuItem; androID.vIEw.Window;public class MainActivity extends SlIDingFragmentActivity { @OverrIDe voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestwindowFeature(Window.FEATURE_NO_Title); //设置滑动菜单 setBehindContentVIEw(R.layout.menu); setContentVIEw(R.layout.activity_main); SlIDingMenu sm=getSlIDingMenu(); sm.setMode(SlIDingMenu.left); sm.setBehinDWIDth(200); sm.setShadowDrawable(R.drawable.shape); sm.setShadowWIDth(5); sm.settouchModeAbove(SlIDingMenu.touchMODE_FulLSCREEN); 替换fragemnt MenuFragment menuFragment=new MenuFragment(); getSupportFragmentManager().beginTransaction().replace(R.ID.ll_left_menu,menuFragment).commit(); }}
MenuFragment.java
com.qingguow.news.fragment; java.util.ArrayList; java.util.List; androID.support.annotation.Nullable; androID.support.v4.app.Fragment; androID.vIEw.LayoutInflater; androID.vIEw.VIEw; androID.vIEw.VIEwGroup; androID.Widget.ArrayAdapter; androID.Widget.listadapter; androID.Widget.ListVIEw; com.qingguow.news.R;class MenuFragment Fragment { private VIEw vIEw; 加载布局文件 @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater,@Nullable VIEwGroup container,@Nullable Bundle savedInstanceState) { vIEw = inflater.inflate(R.layout.List_vIEw,null); return vIEw; } 设置ListvIEw数据 onActivityCreated(@Nullable Bundle savedInstanceState) { .onActivityCreated(savedInstanceState); ListVIEw ListvIEw = (ListVIEw) vIEw.findVIEwByID(R.ID.lv_menu); List<String> data=new ArrayList<String>(); data.add("新闻"); data.add("发现"); data.add("关注"); listadapter adapter = new ArrayAdapter<>(getActivity(),androID.R.layout.simple_List_item_1,androID.R.ID.text1,data); ListvIEw.setAdapter(adapter); }}
总结
以上是内存溢出为你收集整理的[android] 新闻客户端引入SlidingMenu全部内容,希望文章能够帮你解决[android] 新闻客户端引入SlidingMenu所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)