SlidingMenu侧滑菜单

1.在GitHup上下载SlidingMenu,将slidingmenu依赖工程

注意:使用Eclipse的注意:

当前项目右键点击,点击 Properties——》Android,依赖于SlidingMenu
  这里不能勾选Is Library,否则程序无法运行,会一直报一个错
只导入SlidingMenu.jar,会报找不到文件的错误
当前项目和导入SlidingMenu的V4包冲突,删除一个,再从另一个中复制过去,保证两个项目的V4包版本一致即可
以下是代码:
第一种,直接继承Activity,此时的SlidingMenu是一个View
  侧滑布局 leftmenu.xml
<?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" >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="Hello Sliding Menu!"
        android:textColor="@android:color/holo_red_dark"/>
</LinearLayout>

    MainActivity
package com.example.slidingmenu1;
import android.app.Activity;
import android.os.Bundle;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 创建slidingmenu
		// java.lang.RuntimeException: Unable to start activity ComponentInfo
		// {com.example.day02_slidingmenu/com.example.day02_slidingmenu.MainActivity}:
		// java.lang.NumberFormatException: Invalid int: "@2131231002"
		// 特别注意:上下文
		// this,和getApplicationContext(),这里有点特殊
		SlidingMenu menu = new SlidingMenu(getApplicationContext());
		// 设置菜单位置 左边
		menu.setMode(SlidingMenu.LEFT);
		// 设置触摸屏幕的模式
		menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);// 屏幕边缘滑动启用侧滑菜单
		menu.setShadowWidthRes(R.dimen.shadow_width);// 阴影宽度
		menu.setShadowDrawable(R.drawable.shadow);// 阴影图片
		// 设置滑动菜单视图的宽度
		menu.setBehindOffsetRes(R.dimen.slidingmenu_offeset);
		// 设置渐入渐出效果的值
		menu.setFadeDegree(0.35f);
		// 为侧滑菜单设置布局
        //可以改为------------------------------------->View v = View.inflate(this,R.layout.leftmenu,null);
        //--------------------------------------------->menu.setmenu(view);
        //--------------------------------------------->可以在view里设置数据
    
		menu.setMenu(R.layout.leftmenu);
		// 把滑动菜单添加进所有的activity中,
		// SlidingMenu.SLIDING_WINDOW:菜单拉开后高度是全屏的
		// SlidingMenu.SLIDING_CONTENT:菜单拉开后高度是不包含Title/ActionBar的内容区域
		menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
	}
}
//第二种,Sliding Menu是一个Fragment,建议使用第二种,直接继承 SlidingFragmentActivity
侧滑菜单容器     slidingmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/slidingmenu"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
</LinearLayout>
    侧滑菜单内容       fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
    android:gravity="center">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="slidingmenu"
        />
</LinearLayout>
    MyFragment.java
package com.example.slidingmenu2;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MyFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragmet,container,false);
    }
}
   MainAcitvity.java
package com.example.slidingmenu2;
import android.os.Bundle;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
public class MainActivity extends SlidingFragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        show();
       }
       private void show(){
           //获得侧滑菜单
           SlidingMenu menu = getSlidingMenu();
           menu.setMode(SlidingMenu.LEFT);//模式左
           menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);//触摸模式
           menu.setBehindOffset(120);//侧滑偏移
           //设置侧滑菜单容器
           setBehindContentView(R.layout.slidingmenu);
           //侧滑菜单内容
           MyFragment fragment = new MyFragment();
           //侧滑菜单内容添加到容器
           getSupportFragmentManager().beginTransaction().replace(R.id.slidingmenu
           ,fragment,"fragment").commit();
       }
   }



以上是两种实现侧滑菜单的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值