> 使用步骤
库:别的程序可以用它的方法、图片。

下载的其中一个框架的例子是没有actionBar的,example_update
引入出错可能是俩个v4包冲突了,删掉工程里的一个,不要删了库里的,如果还有错误看probles里说什么或者重启,或者选中工程右键-build path-最后一项,把有x的移除,这是运行环境的问题。而我的问题是软件里自带的v7程序里的v4包和库里的v4包冲突了,我将这个替换掉,发现以前所有的工程都报错了,发现里这些工程里的包重新导一下就可以了,可是有xutils的工程不行,可能xutils的v4冲突把
- 1. 引入SlidingMenu的库文件
- 2. Activity继承SlidingFragmentActivity
- 3. 将onCreate方法改为public
- 调用api
  1. public class MainActivity extends SlidingFragmentActivity {
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_main);
  6. setBehindContentView(R.layout.left_menu);// 设置侧边栏布局
  7. SlidingMenu slidingMenu = getSlidingMenu();// 获取侧边栏对象
  8. slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置全屏触摸
  9. slidingMenu.setSecondaryMenu(R.layout.right_menu);// 设置右侧边栏
  10. slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);// 设置展现模式
  11. slidingMenu.setBehindOffset(100);// 设置预留屏幕的宽度
  12. }
  13. }
如果布局文件太过复杂,那就弄俩个Fragment ,一个处理侧边栏逻辑,一个处理主页面
Fragment 和SlidingMenu结合使用实:
1.fragment基类
  1. public abstract class BaseFragment extends Fragment {
  2. public Activity mActivity;
  3. // fragment创建
  4. @Override
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. mActivity = getActivity();
  8. }
  9. // 处理fragment的布局
  10. @Override
  11. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  12. Bundle savedInstanceState) {
  13. return initViews();
  14. }
  15. // 依附的activity创建完成
  16. @Override
  17. public void onActivityCreated(Bundle savedInstanceState) {
  18. super.onActivityCreated(savedInstanceState);
  19. initData();
  20. }
  21. // 子类必须实现初始化布局的方法
  22. public abstract View initViews();
  23. // 初始化数据, 可以不实现
  24. public void initData() {
  25. }
  26. }
2.左边侧边栏
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#f00" >
  6. <TextView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:text="我是侧边栏!" />
  10. </RelativeLayout>
  1. public class LeftMenuFragment extends BaseFragment {
  2. @Override
  3. public View initViews() {
  4. View view = View.inflate(mActivity, R.layout.fragment_left_menu, null);
  5. return view;
  6. }
  7. }
3.主页面
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" >
  5. <TextView
  6. android:layout_width="wrap_content"
  7. android:layout_height="wrap_content"
  8. android:text="我是主页面哦!" />
  9. </RelativeLayout>
  1. public class ContentFragment extends BaseFragment {
  2. @Override
  3. public View initViews() {
  4. View view = View.inflate(mActivity, R.layout.fragment_content, null);
  5. //这里用了三个参数的inflate,跟下面的一样
  6. //LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
    // 使用布局填充器填充布局文件
    // View v2 = inflater.inflate(R.layout.item_listview, null);
  7. return view;
  8. }
  9. }
4.俩个结合起来Fragment ,这个activity的主布局和侧边布局都是个的framelayout,因为他们是用来放frame的,而侧边栏也需要写个fargment用来放继承fargment的那个对象
  1. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:id="@+id/fl_content"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" >
  5. </FrameLayout>
    1. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:id="@+id/fl_left_menu"
    3. android:descendantFocusability="blocksDescendants"
    4. android:layout_width="match_parent"
    5. android:layout_height="match_parent" >
    6. </FrameLayout>

  1. public class MainActivity extends SlidingFragmentActivity {
  2. //设置了标签就能找到碎片,然后调用它里面的方法,和找id是一样的
  3. private static final String FRAGMENT_LEFT_MENU = "fragment_left_menu";
  4. private static final String FRAGMENT_CONTENT = "fragment_content";
  5. @Override
  6. public void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. setBehindContentView(R.layout.left_menu);// 设置侧边栏
  10. SlidingMenu slidingMenu = getSlidingMenu();// 获取侧边栏对象
  11. slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置全屏触摸
  12. slidingMenu.setBehindOffset(200);// 设置预留屏幕的宽度
  13. initFragment();
  14. }
  15. /**
  16. * 初始化fragment, 将fragment数据分别填充给主页面和侧边栏
  17. */
  18. private void initFragment() {
  19. FragmentManager fm = getSupportFragmentManager();
  20. FragmentTransaction transaction = fm.beginTransaction();// 开启事务
  21. transaction.replace(R.id.fl_left_menu, new LeftMenuFragment(),
  22. FRAGMENT_LEFT_MENU);// 用fragment替换framelayout
  23. transaction.replace(R.id.fl_content, new ContentFragment(),
  24. FRAGMENT_CONTENT);
  25. transaction.commit();// 提交事务
  26. // Fragment leftMenuFragment = fm.findFragmentByTag(FRAGMENT_LEFT_MENU);
  27. }
  28. }









2.SlidingMenu(侧边栏效果)的更多相关文章

  1. android121 zhihuibeijing SlidingMenu(侧边栏效果,使用开源库)

    ## Splash ## - 旋转 RotateAnimation - 缩放 ScaleAnimation - 渐变 AlphaAnimation 工程可以作为一个库被其他工程当成一个Library使 ...

  2. CSS实现模拟百度分享侧边栏效果

    在<JS模拟百度分享侧边栏效果>一文中对于Div区块的运动通过JS实现了鼠标移入滑出显示,鼠标移出滑入隐藏的效果.其实在CSS3中通过transition属性就可以较为轻松实现. < ...

  3. 【Android UI设计与开发】10:滑动菜单栏(二)SlidingMenu 动画效果的实现

    其实就是在显示菜单栏时,有个动画的效果.代码比较简单,下面进行说明. 1.效果图如下,手机上查看效果更佳 2.代码实现,这里只讲解动画效果的实现,具体代码可在源代码中查看 <1> 先定义一 ...

  4. Android实现仿qq侧边栏效果

    最近从github上看到一个关于侧边栏的项目,模仿的是qq侧边栏. Github地址是https://github.com/SpecialCyCi/AndroidResideMenu ,这个项目是一个 ...

  5. JS模拟百度分享侧边栏效果

    模拟百度分享侧边栏的弹出与滑入效果.当鼠标移入#div1分享侧边栏,#div1分享侧边栏区块匀速滑出直至其全部露出.当鼠标移除#div1分享侧边栏,#div1分享侧边栏区块匀速滑入隐藏,直至恢复初始位 ...

  6. 034 Android NavigationView和DrawerLayout实现抽屉式导航设计(侧边栏效果)

    1.创建带侧滑效果的activity 右击,new---->activity---->选择NavgationDrawer Activity 2.xml文件布局 (1)activity_ma ...

  7. Android SlidingMenu 滑出侧边栏

    最近有个项目需要使用侧边栏,而且希望是左右两侧都能够滑出侧边菜单,在网上查找实现方式时,发现大家用的最多的还是大神jfeinstein10的SlidingMenu库,地址https://github. ...

  8. 修改SlidingMenu,使其能够完美运行

    今天想给项目添加一个侧边栏的效果,使用到了https://github.com/jfeinstein10/SlidingMenu这个开源项目.项目本身可以通过github下载.此项目同时又依赖于一个名 ...

  9. jquery隐藏侧边栏和折叠侧边栏方法

    两种效果如下所示: 隐藏侧边栏: 折叠侧边栏: 下面,分享隐藏侧边栏实现方法: 实现思路:给body切换class,通过class控制侧边栏和主体部分left 来实现效果 html部分: <di ...

随机推荐

  1. 设置了error_reporting(E_ALL)还是不显示错误

    原因就是在php.ini里面将display_errors关闭了.可以在php.ini里面将display_errors配置为On,然后重启php-fpm ini_set('display_error ...

  2. ExecutorService——shutdown方法和awaitTermination方法

    ExecutorService的关闭shutdown和awaitTermination为接口ExecutorService定义的两个方法,一般情况配合使用来关闭线程池. 方法简介shutdown方法: ...

  3. jquery.validate和jquery.form配合实现验证表单后AJAX提交

    基础代码其实很简单,之后一点一点扩充.最终代码写在最后. 表单: <form action="@Url.Action("AddColumns","Cont ...

  4. POJ2456Aggressive cows-(二分判定)

    Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ...

  5. VMware虚拟机配置端口转发(端口映射),实现远程访问【转】

    前言本文所写的远程为各个电脑在同一个网段内 本文主要详细介绍如何远程访问虚拟机里面的项目! 机器:虚拟机(装在电脑1里).电脑1(宿主机).电脑2.电脑3.电脑4.电脑n... 操作步骤: step1 ...

  6. Spring Kafka中关于Kafka的配置参数

    #################consumer的配置参数(开始)################# #如果'enable.auto.commit'为true,则消费者偏移自动提交给Kafka的频率 ...

  7. vue.$nextTick 解决了哪些问题

    转载:https://www.cnblogs.com/xuewuhen/p/7860989.html $nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 $next ...

  8. ES6 扩展运算符

    ES6的扩展运算符则可以看作是rest参数的逆运算.可以将数组转化为参数列表. 如:console.log(1,...[2,3,4],5) //1 2 3 4 5 用于合并数组: [1,2, ...m ...

  9. zabbix3.x自动发现主机

    在服务器比较多的情况下,配置加入群组,添加模板是非常费时费力的,所以利用自动发现主机.自动添加群组和模板是非常好的办法. 两步走 1.配置发现规则 2.配置发现动作 1.前提在服务器是上部署了agen ...

  10. BZOJ2212或洛谷3521 [POI2011]ROT-Tree Rotations

    BZOJ原题链接 洛谷原题链接 线段树合并裸题. 因为交换子树只会对子树内部的逆序对产生影响,所以我们计算交换前的逆序对个数和交换后的个数,取\(\min\)即可. 对每个叶子节点建一棵动态开点线段树 ...