滑动菜单栏(二)开源项目SlidingMenu的示例

这篇文章会给大家带来7个不同效果的示例,每个示例都包含了最基本的使用方法,从易到难,循序渐进。能够

让初学者可以快速的掌握SlidingMenu的使用方法。下一篇文章会给大家带来三种不同的动画效果来实现滑动菜单栏

的滑动。

关于这些示例,都是SlidingMenu开源项目中自带的一些示例,但是对于初学者来说,要想运行这些示例查看效

果,就必须要导入很多的库,使用起来也是非常的麻烦。博主这里为了能够方便大家更好的学习,就把每个示例都单

独拿了出来,并且添加了一些非常详细的注释,让初学者能够一看就懂,那么博主的目的就达到了。

好的,话不多说,希望大家能够继续支持!

一、示例效果图

先上效果图是博主一贯的作风,这样做可以让大家对于效果的实现有一个大概的了解,可以从中得到自己想要去

实现的效果。

1、示例一效果图

该示例主要是演示通过改变不同的值来改变滑动菜单不同的效果,可以设置的值有:

<1> 设置滑动菜单显示的位置(左边、右边或者左右两边都有);

<2> 设置触摸屏幕的模式(全屏触摸打开滑动菜单、边缘触摸打开滑动菜单或者触摸不能打开滑动菜单);

<3> 设置滑动菜单滑动时缩放的效果以及关闭此效果(值越大效果越明显);

<4> 设置滑动菜单滑动时的阴影效果以及关闭此效果(值越大效果越明显);

<5> 设置滑动菜单滑动时渐入渐出的效果(值越大效果越明显)。

效果图一                                                                                                      效果图二

                                  

上面代码包括全部SlidingMenu的情况:

MainActivity.java 代码:

package com.yangyu.myslidingmenudemo01;

import android.os.Bundle;
import android.view.MenuItem;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;

public class MainActivity extends SlidingFragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //设置标题栏的标题
        setTitle("SlidingMenu Properties");

        //设置是否能够使用ActionBar来滑动
        setSlidingActionBarEnabled(true);

        //设置是否显示Home图标按钮
        getActionBar().setDisplayHomeAsUpEnabled(true);

        //设置主界面视图
        setContentView(R.layout.properties);    

        //初始化滑动菜单
        initSlidingMenu(savedInstanceState);

        //初始化组件
        initView();
    }

    /**
     * 初始化滑动菜单
     */
    private void initSlidingMenu(Bundle savedInstanceState) {
        // 设置滑动菜单的视图
        setBehindContentView(R.layout.menu_frame);
        getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new SampleListFragment()).commit();        

        // 实例化滑动菜单对象
        SlidingMenu sm = getSlidingMenu();
        // 设置滑动阴影的宽度
        sm.setShadowWidthRes(R.dimen.shadow_width);
        // 设置滑动阴影的图像资源
        sm.setShadowDrawable(R.drawable.shadow);
        // 设置滑动菜单视图的宽度
        sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        // 设置渐入渐出效果的值
        sm.setFadeDegree(0.35f);
        // 设置触摸屏幕的模式
        sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    }

    /**
     * 初始化组件
     */
    private void initView() {
        // 设置滑动菜单的位置(左边、右边或者左右两边都有)
        RadioGroup mode = (RadioGroup) findViewById(R.id.mode);
        mode.check(R.id.left);
        mode.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                SlidingMenu sm = getSlidingMenu();
                switch (checkedId) {
                case R.id.left:
                    sm.setMode(SlidingMenu.LEFT);
                    sm.setShadowDrawable(R.drawable.shadow);
                    break;
                case R.id.right:
                    sm.setMode(SlidingMenu.RIGHT);
                    sm.setShadowDrawable(R.drawable.shadowright);
                    break;
                case R.id.left_right:
                    sm.setMode(SlidingMenu.LEFT_RIGHT);
                    sm.setSecondaryMenu(R.layout.menu_frame_two);
                    getSupportFragmentManager().beginTransaction()
                                                .replace(R.id.menu_frame_two,
                                             new SampleListFragment()).commit();
                    sm.setSecondaryShadowDrawable(R.drawable.shadowright);
                    sm.setShadowDrawable(R.drawable.shadow);
                }
            }
        });

        // 设置触摸的模式(全屏触摸滑动、边缘触摸滑动或者触摸不能滑动)
        RadioGroup touchAbove = (RadioGroup) findViewById(R.id.touch_above);
        touchAbove.check(R.id.touch_above_full);
        touchAbove.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                case R.id.touch_above_full:
                    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
                    break;
                case R.id.touch_above_margin:
                    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
                    break;
                case R.id.touch_above_none:
                    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
                    break;
                }
            }
        });

        // 设置滑动菜单滑动时缩放的效果(值越大效果越明显)
        SeekBar scrollScale = (SeekBar) findViewById(R.id.scroll_scale);
        scrollScale.setMax(1000);
        scrollScale.setProgress(333);
        scrollScale.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                getSlidingMenu().setBehindScrollScale((float) seekBar.getProgress() / seekBar.getMax());
            }
        });

        // 设置滑动菜单时下方视图的宽度(值越大宽度越大)
        SeekBar behindWidth = (SeekBar) findViewById(R.id.behind_width);
        behindWidth.setMax(1000);
        behindWidth.setProgress(750);
        behindWidth.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                float percent = (float) seekBar.getProgress() / seekBar.getMax();
                getSlidingMenu().setBehindWidth((int) (percent * getSlidingMenu().getWidth()));
                getSlidingMenu().requestLayout();
            }
        });

        // 设置滑动菜单滑动时的阴影效果(值越大效果越明显)
        CheckBox shadowEnabled = (CheckBox) findViewById(R.id.shadow_enabled);
        shadowEnabled.setChecked(true);
        shadowEnabled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if (isChecked)
                            getSlidingMenu().setShadowDrawable(getSlidingMenu().getMode() == SlidingMenu.LEFT ? R.drawable.shadow: R.drawable.shadowright);
                        else
                            getSlidingMenu().setShadowDrawable(null);
                    }
                });
        SeekBar shadowWidth = (SeekBar) findViewById(R.id.shadow_width);
        shadowWidth.setMax(1000);
        shadowWidth.setProgress(75);
        shadowWidth.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                float percent = (float) seekBar.getProgress() / (float) seekBar.getMax();
                int width = (int) (percent * (float) getSlidingMenu().getWidth());

                getSlidingMenu().setShadowWidth(width);
                getSlidingMenu().invalidate();
            }
        });

        // 设置滑动菜单滑动时渐入渐出的效果(值越大效果越明显)
        CheckBox fadeEnabled = (CheckBox) findViewById(R.id.fade_enabled);
        fadeEnabled.setChecked(true);
        fadeEnabled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        getSlidingMenu().setFadeEnabled(isChecked);
                    }
                });
        SeekBar fadeDeg = (SeekBar) findViewById(R.id.fade_degree);
        fadeDeg.setMax(1000);
        fadeDeg.setProgress(666);
        fadeDeg.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                getSlidingMenu().setFadeDegree(
                        (float) seekBar.getProgress() / seekBar.getMax());
            }
        });
    }

    /**
     * 菜单按钮点击事件,通过点击ActionBar的Home图标按钮来打开滑动菜单
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            toggle();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

}

SampleListFragment.java 用于显示

功能描述:列表Fragment,用来显示滑动菜单打开后的内容
package com.yangyu.myslidingmenudemo01;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * @author zjn
 *    功能描述:列表Fragment,用来显示滑动菜单打开后的内容
 */
public class SampleListFragment extends ListFragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.list, null);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        SampleAdapter adapter = new SampleAdapter(getActivity());

        for (int i = 0; i < 20; i++) {
            adapter.add(new SampleItem("Sample List", android.R.drawable.ic_menu_search));
        }
        setListAdapter(adapter);
    }

    public class SampleAdapter extends ArrayAdapter<SampleItem> {
        public SampleAdapter(Context context) {
            super(context, 0);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null);
            }
            ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon);
            icon.setImageResource(getItem(position).iconRes);
            TextView title = (TextView) convertView.findViewById(R.id.row_title);
            title.setText(getItem(position).tag);

            return convertView;
        }
    }

    private class SampleItem {
        public String tag;
        public int iconRes;
        public SampleItem(String tag, int iconRes) {
            this.tag = tag;
            this.iconRes = iconRes;
        }
    }
}

2、示例二效果图

该示例主要就是教大家实现一个简单的放置在左边滑动菜单栏的效果。

效果图一

3、示例三效果图

该示例实现了在左右两边存放两个视图,并且都可以通滑动屏幕来打开。

               

4、示例四效果图

该示例主要演示了通过Fragment来改变主视图的界面内容。

              

5、示例五效果图

该示例也是通过Fragment来改变主视图的界面内容,但不同的是列表中存放的是图片,并且点击列表图片之后会

经过压缩显示出来。

                        

6、示例六效果图

在该示例中使用ViewPager这个类,将多个Fragment存放在viewpager中,并在主界面视图内容中显示出来。

效果图一                                                                                                                                               效果图二

             

7、示例七效果图

该示例主要演示了当触摸屏幕滑动时,上面的标题栏TitleBar并不会跟随着一起滑动,滑动的只是中间的内容视图。(印象笔记实现了此效果)

二、代码讲解

由于示例比较多,所以博主我就不对每个示例的代码一一进行讲解了,这里就挑一个最基础的示例给大家讲解一

下。在文章的末尾,我会把所有的示例打包供大家下载学习,里面有一些详细的注释,相信大家能一看就懂。

1、项目结构图

2、content_frame.xml布局

我们先从布局文件开始讲起,这里为什么要定义一个content_frame.xml呢?主要是为了定义一个虚拟的视图,方便Fragment能够替换该视图,以达到Fragment的视图内容能够显示在屏幕上的效果。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

大家可以看到这里就定义了一个FrameLayout布局,在给它附上一个id,以至于在系统中可以找到该布局对象。

3、menu_frame.xml布局

这个布局文件是用来存放滑动菜单打开后的视图界面的。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

4、list.xml

这个list布局文件会在ListFragment中用到。

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/list_padding"
    android:paddingRight="@dimen/list_padding" />

5、row.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="50dp"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/row_icon"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:padding="10dp"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/row_title"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:padding="10dp"
        android:text="Medium Text"
        android:textAppearance="@android:style/TextAppearance.Medium" />

</LinearLayout>

6、shadow.xml资源

这个资源文件是用来实现阴影效果的图形,使用了渐变的绘图效果。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:endColor="#33000000"
        android:centerColor="#11000000"
        android:startColor="#00000000" />

</shape>

7、SampleListFragment类

讲完了布局文件,再让我们来看看Java文件。这个类是用来显示界面中的列表的。

package com.yangyu.myslidingmenudemo02;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * @author yangyu
 *    功能描述:列表Fragment,用来显示滑动菜单打开后的内容
 */
public class SampleListFragment extends ListFragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.list, null);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        SampleAdapter adapter = new SampleAdapter(getActivity());
        for (int i = 0; i < 20; i++) {
            adapter.add(new SampleItem("Sample List", android.R.drawable.ic_menu_search));
        }
        setListAdapter(adapter);
    }

    private class SampleItem {
        public String tag;
        public int iconRes;
        public SampleItem(String tag, int iconRes) {
            this.tag = tag;
            this.iconRes = iconRes;
        }
    }

    public class SampleAdapter extends ArrayAdapter<SampleItem> {

        public SampleAdapter(Context context) {
            super(context, 0);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null);
            }
            ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon);
            icon.setImageResource(getItem(position).iconRes);
            TextView title = (TextView) convertView.findViewById(R.id.row_title);
            title.setText(getItem(position).tag);

            return convertView;
        }

    }
}

8、MainActivity类

这是整个程序的入口类,也是在这个类中,对SlidingMenu的属性进行设置。

package com.yangyu.myslidingmenudemo02;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends FragmentActivity {
    private SlidingMenu menu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //设置标题
        setTitle("Attach");

        //初始化滑动菜单
        initSlidingMenu();
    }

    /**
     * 初始化滑动菜单
     */
    private void initSlidingMenu() {
        // 设置主界面视图
        setContentView(R.layout.content_frame);
        getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new SampleListFragment()).commit();

        // 设置滑动菜单的属性值
        menu = new SlidingMenu(this);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowWidthRes(R.dimen.shadow_width);
        menu.setShadowDrawable(R.drawable.shadow);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        // 设置滑动菜单的视图界面
        menu.setMenu(R.layout.menu_frame);
        getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new SampleListFragment()).commit();
    }

    @Override
    public void onBackPressed() {
        //点击返回键关闭滑动菜单
        if (menu.isMenuShowing()) {
            menu.showContent();
        } else {
            super.onBackPressed();
        }
    }

}

讲到这里差不多就要结束了,下一篇会给大家带来打开滑动菜单时实现的动画效果,希望大家能够继续关注!

示例源码下载地址

压缩包中包含所有的项目示例:

每个项目中包含了源码、实现的效果图以及可直接安装运行的APK:

特别注意:大家运行项目的时候千万别忘了导入slidingmenu_library项目,使用方法请参照上一篇文章。

时间: 2024-10-10 20:12:21

滑动菜单栏(二)开源项目SlidingMenu的示例的相关文章

【Android UI设计与开发】第17期:滑动菜单栏(二)开源项目SlidingMenu的示例

通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上 一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的示例演示,让大家对 SlidingMenu有一个更加深入的了解以及如何去实现一些比较炫的滑动效果. 这篇文章会给大家带来7个不同效果的示例,每个示例都包含了最基本的使用方法,从易到难,循序渐进.能够 让初学者可以快速的掌握SlidingMenu的使用方法.下一篇文章会给大家带来三种不同的动画效果来实

【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例

一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像facebook.人人网.everynote.Google+等等.如下图所示: 因为效果确实比较新颖,所以在很多的应用开发中去实现此效果,解决的办法也是不尽相同.诸多比较以后发 现,还是GitHub上的开源项目SlidingMenu提供了最佳的实现:定制灵活.各种阴影和渐变以及动画的

【Android UI设计与开发】第16期:滑动菜单栏(一)开源项目SlidingMenu的使用

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9255829   由于最近的工作确实比较忙的原因,所以这个系列的教程有一段时间没有更新了,也请各位读者见谅.这期博主要给大家带来的是关于滑动菜单栏的实现效果. 一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像f

滑动菜单栏(一)开源项目SlidingMenu的使用

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9255829   第一次使用开源框架SlidingMenu 一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像facebook.人人网.everynote.Google+等等.如下图所示: Google+界面效果

Android开源项目SlidingMenu的学习笔记(二)

在前面已经介绍了SlidingMenu的用法:Android开源项目SlidingMenu的学习笔记(一),接下来再深入学习下,根据滑出项的Menu切换到对应的页面 目录结构: 点击Bluetooth可以切换到相应的界面 关键代码 MainActivity.java package com.dzt.slidingmenudemo; import android.app.Fragment; import android.app.FragmentManager; import android.app

滑动菜单栏(三)SlidingMenu动画效果的实现

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9262931 经过上一篇文章的学习,相信大家对开源项目SlidingMenu的用法已经有了一个非常深入的了解,那么这一章博 主就来教大家滑动菜单栏滑动时动画效果的实现.博主这里用了三个不同动画效果的基础示例来教大家如何去实现, 等大家弄懂了之后完全可以做到举一反三,去实现更多不同的动画效果,让你的应用软件给用户带来眼前一亮的 效果. 一.SlidingMenu动画效果示例一

AS中导入GitHub开源项目SlidingMenu总结,此方法有效,但是太耗时间。 「我用了半个多小时」

AS中导入GitHub开源项目SlidingMenu总结,我开始AS导入SlidingMenu的时候也百度了很多文章,写的都不是很详细,所以导入成功后,写了这篇文章,希望对想用AndroidStudio导入SlidingMenu的小伙伴有所启发. 先上最终效果图动画 1,下载SlidingMenu(https://github.com/jfeinstein10/SlidingMenu) 2.新建AS项目,把SlidingMenu-master中的library文件夹(我把这个文件夹重命名为sli

Android开源项目SlidingMenu深入剖析

SlidingMenu简介: SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果.如Evernote.Google+.Foursquare等,国内的豌豆夹,人人,360手机助手等都使用SlidingMenu的界面方案. 项目下载地址:https://github.com/jfeinstein10/SlidingMenu注意: SlidingMenu依赖于另一个开源项目ActionBarSherlo

Android开源项目SlidingMenu本学习笔记(两)

我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下.依据滑出项的Menu切换到相应的页面 文件夹结构: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVuZzB6aGFvdGFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 点击Bluetooth能够切换到对应的