/** 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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)