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()
posted on 2017-10-20 13:41  konekou  阅读(152)  评论(0)    收藏  举报