365bet官网是多少

Slidemenu(侧滑)的使用(三种使用方式)及属性详解

发布时间 2025-10-16 16:43:14 作者 admin 阅读 3768

1、初始化Slidemenu:

SlidingMenu sm = getSlidingMenu();

2、设置SlideMenu阴影:

sm.setShadowWidthRes(R.dimen.shadow_width);//阴影宽度

sm.setShadowDrawable(R.drawable.shadow);//阴影Drawable

3、设置SlideMenu来开后离边框距离:

sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//拉开后离边框距离

sm.setBehindWidth(int width);

4、设置渐变:

sm.setFadeEnabled(true);/是否有渐变

sm.setFadeDegree(0.35f);//设置渐变比率

5、设置SlideMenu布局:

setBehindContentView(R.layout.fr_slide_menu_right_frame);

getSupportFragmentManager().beginTransaction().replace(R.id.fr_slide_menu_right_frame, new AddChannelFragment()).commit();

.FragmentTransaction类主要用于管理Fragment,有添加,替换,删除等操作。尤其是beginTransaction()与commit()方法与SQL中的事务有点类似。

6、设置模式:

sm.setMode(SlidingMenu.RIGHT);//菜单右边显示

SlidingMenu.LEFT 菜单左边显示;SlidingMenu.LEFT_RIGHT菜单两侧显示。

注意:菜单两侧显示的时候,既然显示两个就应该设置两个布局,需要设置第二个布局:

// 设置左右侧都有

sm.setMode(SlidingMenu.LEFT_RIGHT);

// 此时要再次添加布局菜单,上一个为左侧,这个为右侧

sm.setSecondaryMenu(R.layout.menu_frame_two);

getSupportFragmentManager()

.beginTransaction()

.replace(R.id.menu_frame_two,

new SampleListFragment()).commit();

sm.setSecondaryShadowDrawable(R.drawable.shadowright);

7、设置划动模式:

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏滑动

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

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

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

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

8、设置SldingMenu自动判断当前是打开还是关闭:

toggle();

9、设置缩放比例:

// 放缩比例

getSlidingMenu().setBehindScrollScale((float)0.5);

二 所有属性介绍

SlidingMenu 常用属性介绍:menu.setMode(SlidingMenu.LEFT);//设置左滑菜单

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关闭后事件

左右都可以划出SlidingMenu菜单只需要设置

menu.setMode(SlidingMenu.LEFT_RIGHT);属性,然后设置右侧菜单的布局文件

menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片

设置SlidingMenu属性sm = getSlidingMenu();

//如果只显示左侧菜单就是用LEFT,右侧就RIGHT,左右都支持就LEFT_RIGHT

sm.setMode(SlidingMenu.LEFT_RIGHT);//设置菜单滑动模式,菜单是出现在左侧还是右侧,还是左右两侧都有

sm.setShadowDrawable(R.drawable.shadow);//设置阴影的图片资源

sm.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度

//sm.setBehindWidth(200);//设置菜单的宽

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

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的区域

支持右侧划出菜单:

//SlidingMenu可以同时支持划出左右两侧的菜单,互不冲突,而且动画优美,体验良好。

sm.setSecondaryMenu(R.layout.menu_frame2);//设置右侧菜单

sm.setSecondaryShadowDrawable(R.drawable.shadowright);//设置右侧菜单阴影的图片资源

//右侧SlidingMenu的FragmentgetSupportFragmentManager().beginTransaction().replace(R.id.menu_frame2, new SampleListFragment()).commit();

slidingMenu = getSlidingMenu();//设置是左滑还是右滑,还是左右都可以滑slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//设置阴影宽度slidingMenu.setShadowWidth(getWindowManager().getDefaultDisplay().getWidth() / 40);//设置左菜单阴影图片slidingMenu.setShadowDrawable(R.drawable.shadow);//设置右菜单阴影图片slidingMenu.setSecondaryShadowDrawable(R.drawable.right_shadow);//设置菜单占屏幕的比例slidingMenu.setBehindOffset(getWindowManager().getDefaultDisplay().getWidth() / 5);//设置滑动时菜单的是否淡入淡出slidingMenu.setFadeEnabled(true);//设置淡入淡出的比例slidingMenu.setFadeDegree(0.4f);//设置滑动时拖拽效果slidingMenu.setBehindScrollScale(0);//设置要使菜单滑动,触碰屏幕的范围slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

import android. os.Bundle ;

import android. view.LayoutInflater ;

import android. view.View ;

import com. jeremyfeinstein.slidingmenu .lib. SlidingMenu;

import com. jeremyfeinstein.slidingmenu .lib. app.SlidingFragmentActivity ;

/*********三种实现方式*****/

public class MainActivity extends SlidingFragmentActivity {

@Override

public void onCreate(Bundle savedInstanceState) {

// //设置菜单的布局

setBehindContentView(R. layout.menu_layout );

setContentView(R. layout.activity_main );

// 第一步,初始化控件

SlidingMenu sMmenu = getSlidingMenu();

// 第二步,初始化参数

/**

* * Mode三种方式 SlidingMenu.LEFT_RIGHT) 左右都能划出菜单 第二种 SlidingMenu.LEFT

* 只能呼出左边菜单 第三种 SlidingMenu.RIGHT 只能划出右边菜单

* */

sMmenu.setMode( SlidingMenu.LEFT );

/**

* 触摸模式 TOUCHMODE_FULLSCREEN 全屏划出菜单 第二种 TOUCHMODE_MARGIN 边缘划出 第三种

* TOUCHMODE_NONE 不能通过手势划出菜单

*/

sMmenu.setTouchModeAbove( SlidingMenu.TOUCHMODE_MARGIN );

// 设置宽度

sMmenu.setBehindWidth( 200);

// show出来

sMmenu.showMenu() ;

}

}

第二种

package com. lb.mysidingmenu ;

import java. util.ArrayList ;

import com. jeremyfeinstein.slidingmenu .lib. SlidingMenu;

import android. R.menu ;

import android. os.Bundle ;

import android.support.v7. app.ActionBarActivity ;

import android. util.DisplayMetrics ;

import android. view.View ;

import android. view.WindowManager ;

import android. widget.Adapter ;

import android. widget.ArrayAdapter ;

import android. widget.ListView ;

public class SlidingMenuActivity extends ActionBarActivity {

private SlidingMenu slidingMenu;

@Override

protected void onCreate(Bundle savedInstanceState ) {

super. onCreate(savedInstanceState );

setContentView( R.layout .activity_main) ;

slidingMenu = new SlidingMenu( this);

slidingMenu.setMode( SlidingMenu.LEFT );

/**

* 触摸模式

*/

slidingMenu.setTouchModeAbove( SlidingMenu.TOUCHMODE_FULLSCREEN );

WindowManager wm = getWindowManager() ;

DisplayMetrics displayMetrics = new DisplayMetrics() ;

wm.getDefaultDisplay() .getMetrics(displayMetrics );

slidingMenu.setBehindWidth( displayMetrics.widthPixels / 2);

slidingMenu.setShadowDrawable( R.drawable .shadow) ;

slidingMenu.setBehindScrollScale(( float) 0.5);

/**

* �?��跟fragment搭配使用

*/

// slidingMenu.setMenu(R.layout.menu_layout);

/**

*

*/

slidingMenu.setMenu(getLeftMenu()) ;

/**

* SlidingMenu.SLIDING_WINDOW 包括 acionbar侧滑 SlidingMenu.SLIDING_CONTENT

* actionbar不动

*/

slidingMenu.attachToActivity (this , SlidingMenu.SLIDING_WINDOW );

/**

* 显示侧滑菜单界面

*/

slidingMenu.showContent() ;

slidingMenu.toggle() ;

}

/**

* 初始化侧滑菜单的内容

* @Title: getLeftMenu

* @�? �?

* @�? �? @return

* @return View 返回类型

* @throws

*/

private View getLeftMenu() {

View view = getLayoutInflater() .inflate( R.layout .menu_left_layout, null) ;

ListView listView = (ListView) view.findViewById( R.id .menu_left_listview) ;

ArrayList list = new ArrayList() ;

for ( int i = 0; i < 20; i ++) {

list.add( "" + i) ;

}

ArrayAdapter adapter = new ArrayAdapter (this, android. R.layout.simple_list_item_1, android.R.id.text1, list);

listView.setAdapter( adapter);

return view ;

}

}

第三种

package com.lb.mysidingmenu;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import android.os.Bundle;

import android.support.v4.app.FragmentManager;

import android.support.v4.view.ViewPager;

import android.support.v7.app.ActionBarActivity;

import android.util.DisplayMetrics;

import android.view.WindowManager;

public class SMFragmentActivity extends ActionBarActivity {

private ViewPager pager;

private SlidingMenu slidingMenu;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_content);

pager = (ViewPager) this.findViewById(R.id.conten_viewpager);

initSlidingMenu();

}

private void initSlidingMenu() {

slidingMenu = new SlidingMenu(this);

slidingMenu.setMode(SlidingMenu.LEFT);

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

WindowManager wm = getWindowManager();

DisplayMetrics displayMetrics = new DisplayMetrics();

wm.getDefaultDisplay().getMetrics(displayMetrics);

slidingMenu.setBehindWidth(displayMetrics.widthPixels / 2);

slidingMenu.setMenu(R.layout.menu_fragment_layout);

FragmentManager manager = getSupportFragmentManager();

manager.beginTransaction().replace(R.id.container, new TestFragment()).commit();

slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

}

}

Demo地址(包含slidingMenu库文件):http://download.csdn.net/detail/q908555281/9144465

相关推荐

上海租房

上海租房攻略:上海租房哪里最便宜?上海最全注意事项! 上海租房攻略:上海租房哪里最便宜?上海最全注意事项! 上海租房攻略:上海租

08-15 分类 365bet官网是多少

推荐5款好用的翻译APP

在选择翻译工具时,需根据使用场景(如日常沟通、专业文档、学术研究等)、翻译语言对、功能需求(如实时翻译、文档处理、语音识别等)

08-23 分类 best365官网登录入口

宁海旅游景点大全

宁海旅游景点大全 宁波市宁海县历史悠久,拥有丰富的旅游资源。宁海早在新石器时代就有先民在此生息劳作。宁海的主要旅游景点有:伍山石

10-02 分类 best365官网登录入口

iPhone屏幕维修价格表

中国大陆的 iPhone 屏幕更换费用 下表中的维修定价仅适用于屏幕损坏。如果您的 iPhone 存在任何其他损坏,您需要支付额外的费用。如果您的 iPho

08-12 分类 365bet官网是多少