首先下载SlidingMenu,有Library和Sample,然后在自己的项目中引入类库(引入智慧北京工作空间的Library),然后V4包会发生冲突,删掉自己项目Libs目录下的V4包即可

侧滑布局和主界面布局都先用一个空布局填充一下(FrameLayout),

UI框架搭建简介:整个界面就是一个MainActivity,MainActivity左边是一个滑动侧边栏,是一个Fragment;MainActivity主体又是一个Fragment(三个Fragment中的某一个),左侧边栏Fragment依附于MainActivity,三个主体Fragment依附于侧边栏Fragment

项目的代码结构:

MainActivity的代码:

//一打开程序默认就是读者Fragment
public class MainActivity extends SlidingFragmentActivity{
//改为Public
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);//把主布局设置为空布局(FrameLayout) setBehindContentView(R.layout.left_menu);//把左侧边栏布局设置为空布局
SlidingMenu slidingMenu = getSlidingMenu();
//设置触摸模式为全屏触摸
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//设置预留屏幕的宽度为110dp
slidingMenu.setBehindOffset(SizeUtils.dip2px(MainActivity.this, 110)); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
//把左侧菜单的空布局替换成Fragment,注意,一定是用R.id,即FrameLayout的ID
//而不是R.layout,不是布局文件的ID
transaction.replace(R.id.left_menu, new FragmentLeft());
//把主内容的空FrameLayout的ID替换成读者Fragment
transaction.replace(R.id.activity_main, new ReaderFragment(MainActivity.this));
transaction.commit(); } }

左侧菜单Fragment的布局:

/**左侧菜单的Fragment,在左侧菜单Fragment里面处理点击事件*/
public class FragmentLeft extends Fragment implements OnClickListener {
private View view; @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = View.inflate(getActivity(), R.layout.left_menu_fragment, null); initView();
return view;
} private void initView() {
//左侧菜单的读者
TextView tv_duzhe= (TextView) view.findViewById(R.id.tv_duzhe);
//左侧菜单的充值
TextView tv_pay= (TextView) view.findViewById(R.id.tv_pay);
//左侧菜单的收藏
TextView tv_collect= (TextView) view.findViewById(R.id.tv_collect); tv_duzhe.setOnClickListener(this);
tv_pay.setOnClickListener(this);
tv_collect.setOnClickListener(this);
} @Override
public void onClick(View v) {
//获取SlidingMenu
SlidingFragmentActivity activity= (SlidingFragmentActivity)getActivity();
SlidingMenu slidingMenu = activity.getSlidingMenu(); switch (v.getId()) {
case R.id.tv_duzhe:
ReaderFragment readerFragment = new ReaderFragment(getActivity());
getActivity().getSupportFragmentManager()
.beginTransaction().replace(R.id.activity_main, readerFragment).commit();
slidingMenu.toggle();
break;
case R.id.tv_pay:
//当每次点击充值时,就用充值Fragment替换主布局,主布局就是一个FrameLayout
PayFragment payFragment = new PayFragment(getActivity());
getActivity().getSupportFragmentManager().
beginTransaction().replace(R.id.activity_main, payFragment).commit(); //Fragment替换之后,就关闭侧边栏 slidingMenu.toggle();//如果侧边栏是打开的,就关闭,反之亦然
break;
case R.id.tv_collect:
       //收藏Fragment
getActivity().getSupportFragmentManager().beginTransaction().
replace(R.id.activity_main, new CollectFragment(getActivity())).commit();
slidingMenu.toggle();
break; default:
break;
}
}
}

读者的Fragment,Fragment里的布局就是两个字,其它两个Fragment一模一样,就不写了

/**读者的Fragment*/
public class ReaderFragment extends Fragment {
private Context context;
/**由于ReaderFragment是依附于侧边栏Fragment的,所以不能用getActivity()来获取上下文,必须传过来*/
public ReaderFragment(Context context){
this.context=context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
System.out.println("读者Fragment");
View view = View.inflate(context, R.layout.fragment_duzhe, null);
return view;
}
}

这就是类似于读者APP的界面,运行效果图如下:

SlidingMenu的使用,结合Fragment(eclipse环境)的更多相关文章

  1. CentOS_7 OpenWrt Eclipse 环境搭建与 Dr.com 开发笔记

    一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3,  针对TP-Link WR740N 一些软件的openwrt 的移植 4 ...

  2. 利用Continuous Testing实现Eclipse环境自动单元测试

    当你Eclipse环境中修改项目中的某个方法时,你可能由于各种原因没有运行单元测试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io ...

  3. selenium eclipse环境搭建

    1.python 3.5下载及安装 2.setuptools 与pip 下载地址是:http://pypi.Python.org/pypi/setuptools http://pypi.Python. ...

  4. 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

    很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...

  5. Eclipse环境下JBoss调试,解决引用的工程不被部署的问题

    其实算是一个很小的经验,在eclipse环境下进行jboss的部署,因为要定义某公共包的问题,将代码down下来做了个工程,部署时发现jboss提示:class not found! 从jboss部署 ...

  6. 利用Continuous Testing实现Eclipse环境自己主动单元測试

    当你Eclipse环境中改动项目中的某个方法时,你可能因为各种原因没有执行单元測试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io ...

  7. eclipse环境下如何配置tomcat

    eclipse环境下如何配置tomcat 很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过 ...

  8. eclipse环境下基于已构建struts2项目整合spring+hibernate

    本文是基于已构建的struts2项目基础上整合 spring+hibernate,若读者还不熟悉struts2项目,请先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 ...

  9. Java学习不走弯路教程(7.Eclipse环境搭建)

    7.Eclipse环境搭建 在前几章,我们熟悉了DOS环境下编译和运行Java程序,对于大规模的程序编写,开发工具是必不可少的.Java的开发工具比较常用的是Eclipse.在接下来的教程中,我们将基 ...

  10. Eclipse环境搭建并且运行wordcount程序

    一.安装Hadoop插件 1. 所需环境  hadoop2.0伪分布式环境平台正常运行 所需压缩包:eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz 在Linu ...

随机推荐

  1. javascript焦点图自动播放

    这次是完整版,网页点开就能自动播放 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  2. c题 Registration system

    Description A new e-mail service "Berlandesk" is going to be opened in Berland in the near ...

  3. 如何成为出色的IT项目经理:成功的五个关键因素

    “出色”的IT 项目经理的定义不是一成不变的.随着经济和商业因素的改变,项目经理的角色进行调整以适应新的需求,迎接新的挑战. 除了一般的困惑之外,还有一种看法就是,在组织中,不同的人对于项目经理的看法 ...

  4. Redis简介一

    Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的key-valu ...

  5. iOS下uiview和uiscrollview设置背景图片的源码

    1.uiscrollview 设置背景图片 // Setup the Scroll ViewUIScrollView*tempScrollView=(UIScrollView*)self.view;t ...

  6. 数据查找之80-20原则的JavaScript代码实现

    作为前端开发人员,无论在工作还是找工作(笔试/面试),或多或少会涉及一些数据结构的知识. 数据结构即计算机存储和组织数据的方式. 常用的结构:数组.栈.队列.链表.树.图.堆和散列表 关于数据,我们常 ...

  7. 使用monit搭建一个监控系统

    上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情.当然了主要是监控异常,因为我们的产品属于服务器类型,很多进程都daemon,要不停的运行.我们搭建监控目的不过是出现问题能够及时的知 ...

  8. 眼睛跟踪 java

    https://github.com/hosek/eyeTrackSample Simple sample, for eye tracking with OpenCV

  9. 裸二分图匹配poj1469

    poj1496 题意: 给你p门课程和n个学生,一个学生可以选0门,1门,或者多门课程, 现在要求一个由p个学生组成的集合,满足下列2个条件: 1.每个学生选择一个不同的课程 2.每个课程都有不同的代 ...

  10. 把aspx页面输出成xml的方法注意事项

    先贴代码 Response.Charset = "gb2312"; Response.ContentType = "text/xml"; Response.Co ...