SlidingMenu側拉菜单的实现
SlidingMenu側拉菜单的实现
activity_home.xml文件布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/flt_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HomeActivity" >
<!-- 用于添加HomeFragment界面 -->
</FrameLayout>
layout_menu.xml布局
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flt_menu"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- 菜单布局 容器用于添加 菜单的片段 -->
</FrameLayout>
dimens.xml 放在values文件夹中
<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">250dp</dimen>
<dimen name="slidingmenu_shadow_width">5dp</dimen>
</resources>
shape_shadow.xml 这是一个形状 即图片 因此放在drawable文件里
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 实现颜色渐变效果 -->
<gradient
android:startColor="#00000000"
android:centerColor="#2d000000"
android:endColor="#5f000000"></gradient>
</shape>
代码实现
public class HomeActivity extends SlidingFragmentActivity {
private FragmentManager mFragmentManager;// 片段管理器
private SlidingMenu mSlidingMenu;// 側拉菜单对象
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置側拉菜单内容界面
setContentView(R.layout.activity_home);
// 设置稍后的内容视图,即设置菜单界面
setBehindContentView(R.layout.layout_menu);
// 取得側拉菜单对象
mSlidingMenu = getSlidingMenu();
// 设置侧拉菜单模式,左边 、右边、两边都有
mSlidingMenu.setMode(SlidingMenu.LEFT);
// mSlidingMenu.setBehindOffset(i)//设置侧拉菜单偏移量,像素值
// 设置侧拉菜单偏移量 ,数据来自资源id
mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
// 设置侧拉菜单的阴影 ,通过Shape设置图形 ,实现由渐变效果
mSlidingMenu.setShadowDrawable(R.drawable.shape_shadow);
// 设置侧拉菜单阴影的宽度
mSlidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);
/**
* 设置拖拽模式
* 1.TOUCHMODE_MARGIN:边角拖拽
* 2. TOUCHMODE_FULLSCREEN :全屏拖拽
* 3. TOUCHMODE_NONE :不支持拖拽
*/
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//获取片段管理器
mFragmentManager = getFragmentManager();
HomeFragment homeFragment = new HomeFragment();
MenuFragment menuFragment = new MenuFragment();
/**替换片段
* containerViewId:片段存放的容器
* fragment: 要替换的片段对象
* tag:片段的标记
*/
mFragmentManager.beginTransaction().replace(R.id.flt_content, homeFragment, "HOME").commit();
mFragmentManager.beginTransaction().replace(R.id.flt_menu, menuFragment, "MENU").commit()
浙公网安备 33010602011771号