怎么使用侧滑菜单SlidingMenu

怎么使用侧滑菜单SlidingMenu,第1张

看一下怎么使用吧!

/** SlidingMenu 常用属性介绍: */

menu.setMode(SlidingMenu.LEFT)//设置左滑菜单 SlidingMenu.RIGHT SlidingMenu.LEFT_RIGHT 右侧滑/左右侧滑

menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN)//设置滑动的屏幕局限,该设置为全屏区域都可以滑动

menu.setShadowDrawable(R.drawable.shadow)//设置暗影

menu.setShadowWidthRes(R.dimen.shadow_width)//设置暗影的宽度

menu.setBehindOffsetRes(R.dimen.slidingmenu_offset)//SlidingMenu划出时主页面显示的残剩宽度

menu.setBehindWidth(400)//设置SlidingMenu菜单的宽度

menu.setFadeDegree(0.35f)//SlidingMenu滑动时的渐变程度

menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT)//使SlidingMenu附加在Activity上

menu.setMenu(R.layout.menu_layout)//设置menu的布局文件

menu.toggle()//动态断定主动封闭或开启SlidingMenu

menu.showMenu()//显示SlidingMenu

menu.showContent()//显示内容

menu.setOnOpenListener(onOpenListener)//slidingmenu打开关于封闭menu有两个,简单的来说,对于menu close事务,一个是when,一个是after

menu.OnClosedListener(OnClosedListener)//slidingmenu封闭时事务

menu.OnClosedListener(OnClosedListener)//slidingmenu封闭后事务

简单设置左方向菜单侧滑的使用方法:

public class SlidingExample extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setTitle(R.string.attach)

// set the content view

setContentView(R.layout.content)

// configure the SlidingMenu

SlidingMenu menu = new SlidingMenu(this)

menu.setMode(SlidingMenu.LEFT)

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)

}

}

如果你要设置左右菜单侧滑,看这里:

public class MainActivity extends FragmentActivity {

public SlidingMenu mSlidingMenu

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

mSlidingMenu = new SlidingMenu(this)

mSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT)

mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset)

mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN)

mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT)

mSlidingMenu.setMenu(R.layout.slidemenu_primary)//左侧滑

mSlidingMenu.setSecondaryMenu(R.layout.slidemenu_secondery)//右侧滑

getSupportFragmentManager().beginTransaction().

replace(R.id.aty_main_framLayout, new ViewPagerFragment()).commit()

getSupportFragmentManager().beginTransaction().

replace(R.id.framLayout_fragment, new TranslationAnimationFragment()).commit()

}

/** 重写返回键和menu键,控制菜单侧滑关闭 */

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

switch (keyCode) {

case KeyEvent.KEYCODE_BACK:

if(mSlidingMenu.isMenuShowing())

mSlidingMenu.showContent()

else finish()

return true

case KeyEvent.KEYCODE_MENU:

mSlidingMenu.showSecondaryMenu()

return true

}

return super.onKeyDown(keyCode, event)

}

}

下面看一下如何解决侧滑跟ViewPager左右滑动的冲突:《当然,我的源码上展示了怎么使用》

mSlidingMenu.addIgnoredView(viewPager)

在你的Viewpager内容显示之前,调用上面的方法,就Ok了、

SlidingMenu.setTouchModeAbove().其中一共包含三中手势模式:

TOUCHMODE_FULLSCREEN 全屏模式,在正文布局中通过手势也可以打开SlidingMenu

TOUCHMODE_MARGIN 边缘模式,在正文布局的边缘处通过手势可以找开SlidingMenu

TOUCHMODE_NONE 自然是不能通过手势打开SlidingMenu了

当你在设置暗影时,在res/drawable/shadow.xml

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<gradient

android:centerColor="#11000000"

android:endColor="#00000000"

android:startColor="#33000000" />

</shape>

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

先前看到网上不少大神写的demo,其菜单栏主要以 A,B,C,D等字母为主,即A,B,C,D等字母为对应该项携带的 id(id不能为汉字或纯数字)。而笔者现在写的项目菜单栏为汉字,所以需要改变数据格式,进而需要改变 wxml 中的循环嵌套和获取。以下为成型后效果,希望对读者有帮助。

实现该功能的思路:通过点击左侧滑栏的某一项,获取到该元素携带的 id ,然后动态传给右侧滑栏的 scroll-into-view ,从而实现右侧滑栏对应的该元素运动置顶。

以下为完整数据

数据格式:

/* pages/listers/listers.wxss /

/ pages/list-1/list-1.wxss */

/ 总体主盒子 /

.container {

position: relative

width: 100%

height: 1220rpx

background-color: #f0f4f7

color: #939393

}

/ 左侧栏主盒子 /

.nav_left{

/ 设置行内块级元素(没使用定位) /

display: inline-block

width: 100%

height: 100%

/ 主盒子设置背景色为灰色 /

background: #fff

text-align: center

/* position: fixed /

left: 0

top: 0

border-top: 1rpx solid #dedede

}

/ 左侧栏list的item /

.nav_left .nav_left_items{

background: #fff

/ 每个高30px /

height: 80rpx

/ 垂直居中 /

line-height: 80rpx

/ 再设上下padding增加高度,总高42px /

padding: 15rpx 0

/ 只设下边线 /

border-bottom: 1px solid #dedede

/ 文字14px /

font-size: 29rpx

color: #101010

font-weight:

}

/ 左侧栏list的item被选中时 /

.nav_left .nav_left_items.active{

/ 背景色变成白色*/

background: #f0f4f7

color: #ed1000

}

/ 右侧栏主盒子 /

.scroll_right{

/ 右侧盒子使用了绝对定位 /

position: fixed

top: 0

right: 0

overflow: auto

flex: 1

/ 宽度75%,高度占满,并使用百分比布局 /

width: 75%

height: 100%

padding: 20rpx

box-sizing: border-box

background-color: #f0f4f7

border-top: 1rpx solid #dedede

}

.mink::after{

display:blockcontent:''clear:both

}

.jiul,.jiul image{

width: 100%

height: 170rpx

}

.minl{

font-size: 29rpx

color: #777

text-align: left

line-height: 60rpx

float: left

background: #f0f4f7

width: 100%

/* height: 50rpx /

}

.mink{

width: 100%

background: #fff

height: 100%

}

/ 右侧栏list的item /

.nav_right_items{

/ 浮动向左 /

float: left

/ 每个item设置宽度是33.33% /

width: 50%

/ height: 160rpx /

text-align: center

color: #4a4a4a

background: #fff

}

.nav_right_items image{

/ 被图片设置宽高 /

width: 60px

height: 50px

margin-top: 15rpx

}

.nav_right_items text{

/ 给text设成块级元素 /

display: block

margin-top: 5rpx

margin-bottom: 10rpx

font-size: 26rpx

/ 设置文字溢出部分为... /

overflow: hidden

white-space: nowrap

text-overflow: ellipsis

}

/ * 自定义其他点击态样式类 **/

.other-navigator-hover{

background:#fff

}

.scroll_left{

width:25%

height:100%

background:#fff

text-align:center

position: fixed

left: 0top: 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11807703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存