Android SlidingMenu使用详解

SlidingMenu是安卓程序中的侧滑界面,和系统自带的DrawerLayout的作用是相同的,主要是视觉效果不一样,手机版QQ使用的侧滑界面就是SlidingMenu

初步使用方法:实现侧滑界面滑出效果

步骤一:下载好SlidingMenu类库文件后导入到项目中

SlidingMenu类库网盘下载地址:

链接:https://pan.baidu.com/s/1df7GKm  密码:vg50  

将下载好的SlidingMenu-master文件中的library导入到当前项目中

导入后注意修改library的build.gradle中的以下信息和当前项目的一致

之后可能会报一个错,显示的是FloatMath已经过期,手动将FloatMath改成Math就好

步骤二:成功导入类库后就可以在java代码中使用SlidingMenu这个类啦,通过java代码实现侧滑界面效果

先上activity_main.xml中的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:background="#ed0e0e"
    android:layout_height="match_parent"
    tools:context="com.contentprovide.liuliu.slidmingmenu_4.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

侧滑界面需要引用的自定义的资源布局slid.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="我是侧滑界面"
       />

</LinearLayout>

Java代码实现:

package com.contentprovide.liuliu.slidmingmenu_4;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends AppCompatActivity {

    SlidingMenu slidingMenu;

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button);

        slidingMenu = new SlidingMenu(this);
//        设置呈现模式
        slidingMenu.setMode(SlidingMenu.LEFT);//呈现模式为左边
//        设置侧滑界面偏移出的尺寸
        slidingMenu.setBehindOffset(200);
//        设置全屏都可以触摸
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//        添加到当前Activity当中
        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
//        给侧滑界面引用一个布局资源作为所展示的界面
        slidingMenu.setMenu(R.layout.slid);

//        给主界面的按钮添加事件,点击滑出菜单
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                slidingMenu.toggle(true);
            }
        });

    }
}

实现效果:

SlidingMenu常用属性

//设置侧滑菜单的位置,可选值LEFT , RIGHT , LEFT_RIGHT (两边都有菜单时设置)

menu.setMode(SlidingMenu.LEFT_RIGHT);

// 设置触摸屏幕的模式,可选只MARGIN , CONTENT 
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);

//根据dimension资源文件的ID来设置阴影的宽度
menu.setShadowWidthRes(R.dimen.shadow_width);

//根据资源文件ID来设置滑动菜单的阴影效果
menu.setShadowDrawable(R.drawable.shadow);

// 这两个都是设置滑动菜单视图的宽度,二选一
//设置SlidingMenu离屏幕的偏移量
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
//设置宽度
menu.setBehindWidth()

// 设置渐入渐出效果的值
menu.setFadeDegree(0.35f);

//设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1
menu.setBehindScrollScale(1.0f);

//设置二级菜单的阴影效果
menu.setSecondaryShadowDrawable(R.drawable.shadow);

//设置右边(二级)侧滑菜单
menu.setSecondaryMenu(R.layout.right_menu_frame);

//为侧滑菜单设置布局
menu.setMenu(R.layout.leftmenu);

//把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT , SLIDING_WINDOW
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

进阶使用方法:给在SlidingMenu中的布局中的各种空间添加事件,结合使用Fragment

滑出侧滑界面后我们需要在侧滑界面中进行下一步操作,这样侧滑界面中的布局里的事件就要单独写了

通过serMenu(a)方法给侧滑界面引用了布局界面a.xml,在这个a.xml布局界面中只有一个FrameLayout,侧滑界面中的所有代码是写在Fragment中的,然后通过使用FragmentManager将Fragment替换掉此Fragment,这下就相当于setMenu方法引用的是Fragment了

实现效果:

原文地址:https://www.cnblogs.com/lyd447113735/p/8395134.html

时间: 2024-11-25 09:02:27

Android SlidingMenu使用详解的相关文章

Android SlidingMenu 使用详解

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/36677279 很多APP都有侧滑菜单的功能,部分APP左右都是侧滑菜单~SlidingMenu 这个开源项目可以很好帮助我们实现侧滑功能,如果对SlidingMenu 还不是很了解的童鞋,可以参考下本篇博客.将侧滑菜单引入项目的方式很多中,本博客先通过例子介绍各种引入方式,然后给大家展示个实例:主布局ViewPager,左右各一个侧滑菜单的用法,差不多已经能满足大部分应用的需求

android屏幕适配详解

android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如果是纯色背景,尽量使用android的shape 自定义. 5.如果需要在特定分辨率下适配,可以在res目录上新建layout

Android 四大组件 详解

[置顶] Android四大组件详解 分类: Android四大组件2013-02-09 16:23 19411人阅读 评论(13) 收藏 举报 Android开发 注:本文主要来自网易的一个博主的文章,经过阅读,总结,故留下文章在此 Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个

Android权限Permission详解

android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,Android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.INSTALL_PACKAGES 允许一个程序安装packages android.permission.INTERNAL_SYSTEM_WINDOW 允许打开窗口使用系统

Android进阶——Preference详解之Preference系的基本应用(三)

引言 前面一篇文章Android进阶--Preference详解之Preference系的基本应用和管理(二)介绍了二级Preference的使用和特点,接下来进入系统给我提供的底级Preference的使用CheckBox选择项CheckBoxPreference.EditText编辑对话框EditTextPreference.列表选择ListPreference.多项选择MultiSelectListPreference. 开关选择SwitchPreference的应用和管理.以期大家能在学

Android中Context详解 ---- 你所不知道的Context

转载至 :http://blog.csdn.net/qinjuning 前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等都会利用到Context的相关方法 : 说它陌生,完全是 因为我们真正的不懂Context

Android相机开发详解(一)

Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机开发能够实现打开相机,前后摄像头切换,摄像预览,保存图片,浏览已拍照图片等相机功能. Android相机开发详解(一)主要实现打开相机,摄像预览,前后置摄像头切换,保存图片等四个功能. Android相机开发详解(二)主要实现翻页浏览相片,触控缩放浏览图片,删除图片,发送图片等四个功能. Andro

Android中Context详解 ---- 你所不知道的Context (转载)

Android中Context详解 ---- 你所不知道的Context (转载) http://blog.csdn.net/qinjuning 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等都会利用到Context的相关方法 : 说它陌生,完全是 因为我们真正的不懂Context的原理.类结构关系.一个简单的问题是,一个应用

Android之canvas详解

首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, t