补充slidingmenu之左右侧滑
2016-06-17 15:08
197 查看
在这里我们既然学习了Slidingmenu侧滑,当然也可以将其做成双向的,比如:掌阅app~
在这里贴出布局:activity_main:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> </RelativeLayout>右侧布局menu_frame_right.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/menu_right" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f00" > </FrameLayout> </LinearLayout>左侧布局menu_frame.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/menu" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#333333" > </FrameLayout> </LinearLayout>
MainActivity-----
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.Window; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; public class MainActivity extends SlidingFragmentActivity { private SlidingMenu slidingMenu; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // 内容页布局 setContentView(R.layout.content); // 设置侧拉条目布局 setBehindContentView(R.layout.menu_frame); // 获取侧拉栏目对象 slidingMenu = getSlidingMenu(); /* * SlidingMenu.TOUCHMODE_FULLSCREEN全屏触摸有效 SlidingMenu.TOUCHMODE_MARGIN * 拖拽边缘有效 SlidingMenu.TOUCHMODE_NONE 不响应触摸事件 */ slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 设置内容显示页对应的dp大小 slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); // //设置左侧侧拉栏目宽度 // slidingMenu.setBehindWidth(140); // 设置侧拉栏目所在位置 /* * SlidingMenu.LEFT SlidingMenu.LEFT_RIGHT SlidingMenu.RIGHT */ slidingMenu.setMode(SlidingMenu.LEFT_RIGHT); // 给侧拉栏目和左侧内容页区分开(加线) slidingMenu.setShadowDrawable(R.drawable.shadow); // 设置线的宽度 slidingMenu.setShadowWidthRes(2); // fragment去替换布局中节点 MenuFragment menuFragment = new MenuFragment(); // FragmentManager管理者 getSupportFragmentManager() // 开启事物 .beginTransaction() // 通过fragment去替换对应布局 .replace(R.id.menu, menuFragment, "MENU") // 提交事物 .commit(); slidingMenu.setSecondaryMenu(R.layout.menu_frame_right); // 设置右侧分割线的图片 slidingMenu.setSecondaryShadowDrawable(R.drawable.shadow); RightMenuFragment rightMenuFragment = new RightMenuFragment(); // FragmentManager管理者 getSupportFragmentManager() // 开启事物 .beginTransaction() // 通过fragment去替换对应布局 .replace(R.id.menu_right, rightMenuFragment, "MENU_RIGHT") // 提交事物 .commit(); } // 当前类中做替换当前显示内容界面的操作 public void switchFragment(Fragment fragment) { if (fragment != null) { getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, fragment, "HOME").commit(); slidingMenu.toggle(); } } }
MenuFragment.java
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class MenuFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.menu_frame, container, false); return view; } }
RightMenuFragment.java
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class RightMenuFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.menu_frame_right, container, false); return view; } }
dimens.xml---
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> <dimen name="slidingmenu_offset">180dp</dimen> <dimen name="list_padding">10dp</dimen> <dimen name="shadow_width">5dp</dimen> </resources>
shadow.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:endColor="#5A000000" android:centerColor="#2D000000" android:startColor="#00000000" /> </shape>
这样就可以完成了
相关文章推荐
- maven配置setting.xml详解
- 【剑指offer】覆盖矩形
- [iOS] 使用WebViewJavascriptBridge实现OC与JS交互
- 【SQL】index索引
- JavaScript事件对象与事件的委托
- 初见Android 6.0新特性
- ssh环境搭建(1.1)-lib maven 篇
- Android酷炫实用的开源框架(UI框架)
- IOS培训实战教程之开发的21个奇葩技巧
- socket通信乱码问题
- Lua中函数与面向对象编程的基础知识整理
- 【编程马拉松】【015-走迷宫】
- 如何做出透明背景的flash动画
- Git合并开发代码分支到测试代码分支
- JS实现的自定义水平滚动字体插件完整实例
- 快速进入陌生领域: HistCite 使用教程
- magento JS冲突
- mysql sql force_index 优化案例
- ELK搭建记录
- sublime快捷键大全(转)