第三方组件 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>
布局效果:
代码:
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(); } }); } }
效果: