Android SlideMenu

第三方组件 SlideMenu 实现步骤与主要方法:

1、构建SlidingMenu menu=new SlidingMenu(context)
2、设置模式为左侧边栏  menu.setMode(SlidingMenu.LEFT);
3、设置菜单
View menuView=LayoutInflater.from(this).inflate(news_silding_menu, null);
menu.setMenu(menuView);
4、使SlidingMenu附加在Activity上,滑动可出现侧边栏
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
5、开启菜单
        menu.toggle();//动态判断自动关闭或开启SlidingMenu
       menu.showMenu();//显示SlidingMenu


显示侧边栏代码:

slidingMenu = new SlidingMenu(this);                     //new一个侧边栏 slidingMenu.setMode(SlidingMenu.LEFT_RIGHT); 

slidingMenu.setMenu(menuView_L);                      //将布局加载到侧栏

slidingMenu.setSecondaryMenu(v1); slidingMenu.setBehindWidth(300);            //侧边栏出来的宽度 slidingMenu.setBehindOffset(380);                                                                            //剩余部分的宽度  

slidingMenu.setFadeDegree(0.35f);  

slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);                //侧边栏执行开始


SlidingMenu 常用属性介绍

mSlidingMenu.setMode(SlidingMenu.LEFT);//设置左滑菜单
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动
mSlidingMenu.setShadowDrawable(R.drawable.shadow);//设置阴影图片
mSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度
mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度
mSlidingMenu.setBehindWidth(400);//设置SlidingMenu菜单的宽度
mSlidingMenu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度
mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上
mSlidingMenu.setMenu(R.layout.menu_layout);//设置menu的布局文件
mSlidingMenu.toggle();//动态判断自动关闭或开启SlidingMenu
mSlidingMenu.showMenu();//显示SlidingMenu
mSlidingMenu.showContent();//显示内容
mSlidingMenu.setOnOpenListener(onOpenListener);//监听SlidingMenu打开
关于关闭menu有两个监听,简单的来说,对于menu close事件,一个是when,一个是after 
mSlidingMenu.OnClosedListener(OnClosedListener);//监听SlidingMenu关闭时事件
mSlidingMenu.OnClosedListener(OnClosedListener);//监听SlidingMenu关闭后事件
mSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//设置左右都可以划出SlidingMenu菜单
mSlidingMenu.setSecondaryMenu(R.layout.frame_menu);//设置右侧菜单的布局文件
mSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片


练习:实现侧边栏效果,并且点击会出现已点击。

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#433d3d"
    tools:context="com.example.administrator.jreduch03.zuoye2Activity">
    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:stretchColumns="0,1,2">
        <TableRow>
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                android:layout_weight="1"
                />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                android:layout_weight="1"
                />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                android:layout_weight="1"
                />
        </TableRow>
        <TextView
            android:text="更多登录方式"
            android:id="@+id/tv"
            android:gravity="center"
            android:textSize="16sp"
            android:textColor="#ffffff"
            />

        <LinearLayout
            android:id="@+id/ll1">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffff"
                android:text="    搜索"
                android:textSize="40sp"
                android:onClick="sousuo"
                android:id="@+id/tv1"
                />
        </LinearLayout>
        <LinearLayout
            >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffff"
                android:text="    收藏"
                android:textSize="40sp"
                />
        </LinearLayout>
        <LinearLayout>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffff"
                android:text="    通知"
                android:textSize="40sp"
                />
        </LinearLayout>
        <LinearLayout>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffff"
                android:text="    活动"
                android:textSize="40sp"
                />
        </LinearLayout>
        <LinearLayout>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffff"
                android:text="    设置"
                android:textSize="40sp"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/jietu"
                android:src="@mipmap/jietu1"
                android:layout_weight="1"
                />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/jietu1"
                android:layout_weight="1"
                />
        </LinearLayout>
        <TableLayout
            android:stretchColumns="0,1">
            <TableRow>
                <TextView
                    android:text="离线"
                    android:textSize="20sp"
                    android:gravity="center"
                    />
                <TextView
                    android:text="夜间"
                    android:textSize="20sp"
                    android:gravity="center"
                    />
            </TableRow>
        </TableLayout>
    </TableLayout>
</RelativeLayout>

布局效果:

Android SlideMenu


代码:

package com.example.administrator.jreduch05;

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

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class SlidingMenuActivity extends AppCompatActivity {
    private TextView tv;

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

        SlidingMenu slidingMenu=new SlidingMenu(this);
        View view =getLayoutInflater().inflate(R.layout.activity_zuoye82_2,null);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        //设置屏幕滑动范围
        slidingMenu.setMenu(view);
        //设置左侧滑动布局
        slidingMenu.setMode(SlidingMenu.LEFT);
        slidingMenu.setBehindOffset(380);
        //设置滑出后屏幕剩余宽度
        slidingMenu.setFadeDegree(0.35f);
        //滑出后动画效果
        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        //附加到Activity
        tv=(TextView) findViewById(R.id.tv1);
    }
    public void sousuo(View view){
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getBaseContext(),
                        "点击了搜索",Toast.LENGTH_SHORT).show();
            }
        });
    }
}
效果:




上一篇:NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比


下一篇:Android ListView与适配器