这里重点描述两种简单的方法,一种是直接使用SlidingMenu,另一种是继承SlidingActivity,下面写出使用方法。
一、使用SlidingMenu:准备布局文件和Activity中使用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/tv_left"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="text1"
android:background="#e3ffdb"/>
<TextView
android:id="@+id/tv_left2"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="text2"
android:background="#dbf2ff"/>
</LinearLayout>
public class OtherActivity extends Activity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initSlidingMenu();
}
private void initSlidingMenu(){
// 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);
/**
* SLIDING_WINDOW will include the Title/ActionBar in the content
* section of the SlidingMenu, while SLIDING_CONTENT does not.
*/
//把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT , SLIDING_WINDOW
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
//为侧滑菜单设置布局
menu.setMenu(R.layout.leftmenu);
menu.setOnClickListener(this);
TextView textView = (TextView) menu.findViewById(R.id.tv_left);
textView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_left:
Toast.makeText(this, "other text - tv_left", Toast.LENGTH_SHORT).show();
break;
}
}
}
二、继承SlidingActivity
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Sliding Menu Text!" />
</LinearLayout>
public class MainActivity extends SlidingActivity implements View.OnClickListener{
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setBehindContentView(R.layout.test_menu);
SlidingMenu menu = getSlidingMenu();
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);
TextView textView = (TextView)menu.findViewById(R.id.tv);
textView.setOnClickListener(this);
}
@Override
publicvoid onClick(View v) {
switch (v.getId()){
case R.id.tv:
Toast.makeText(this,"hjahhah",Toast.LENGTH_SHORT).show();
break;
}
}
}
三、自动收起和展开SlidingMenu的方法,还是使用第一种方法实现
private void initSlidingMenu(){
// 前面代码和“一”中一样
textViewShow = (TextView)findViewById(R.id.tv_jump);
textViewShow.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_left:
textViewShow.setText("change text");
menu.toggle();
break;
case R.id.tv_jump:
menu.toggle();
break;
}
}