下载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;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import com.qingguow.news.fragment.MenuFragment; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window; public class MainActivity extends SlidingFragmentActivity { @Override
public 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

package com.qingguow.news.fragment;

import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView; import com.qingguow.news.R; public class MenuFragment extends 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数据
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.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); }
}

最新文章

  1. 生成Kindle可读的mobi和PDF电子书
  2. Tengine
  3. cocos2d-x 3.0 版本 骨骼动画设置shader
  4. IIS 发布网站 ashx无法访问
  5. slf4j和log4j配置
  6. 黑马程序员——Block数据类型
  7. tornado异步请求非阻塞
  8. zoj 3708 Density of Power Network
  9. css中换行的几种方式
  10. Mysql 5.6 解压版配置方案
  11. HDU 3346 Lucky Number
  12. windows下nginx的安装及使用方法入门
  13. 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析
  14. 关于会话、进程、请求的几个常用SQL
  15. 学习OpenCV,GPU模块
  16. ASP.NET实现二维码
  17. latex 双引号 “
  18. 线程中的读写锁ReadWriteLock
  19. Python Socket函数及说明
  20. 如何drop大表的中不用的字段 set unused column

热门文章

  1. ASP .Net C# ---Excel导入导出方法
  2. 四种List实现类的对比总结
  3. window.open新打开窗口与新开标签页
  4. JQuery的页面操作
  5. [转载]Java并发编程:深入剖析ThreadLocal
  6. 【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题
  7. JAVA实现QRCode的二维码生成以及打印
  8. python的datetime常用方法
  9. 【rocketMQ】1、搭建MQ服务器,生产一个订单与消费一个订单
  10. QQ gtk,bkn算法