1、GitHub下载项目SlidingMenu
开源库地址:https://github.com/jfeinstein10/SlidingMenu
①、首先要在GitHub下载库包并解压,将SlidingMenu-master目录下的library文件夹拷贝到自己的Project的app\libs目录下,然后我把文件夹名“library”改成“SlidingMenu”了
②、SlidingMenu目录下的build.gradle文件需要更改,主要是一些sdk和tools的版本,和app目录下的build.gradle文件对应着改,还有classpath需要改成推荐的版本
③、现在就可以导入了,File -> New -> Import Module,然后将SlidingMenu的完整路径(e.g. “C:\Demo\app\libs\SlidingMenu”)填写就可以了
④、最后再在app目录下的build.gradle文件中追加一条“compile project(’:SlidingMenu’)”,然后Build一下Project就大功告成了
2、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:background="#ff9999"
android:orientation="vertical">
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
android:id="@+id/slidingmenulayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/mybtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ClickMe"/>
</com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
</LinearLayout>
3、Activity中(注意加载xml的时候,生命控件需要在SlidingMenu之后)
package com.example.administrator.myslidingmenu;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private SlidingMenu mSlidingMenu;
/**
* ClickMe
*/
private Button mMybtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSlidingMenu = new SlidingMenu(this);
mSlidingMenu.setMode(SlidingMenu.LEFT); //设置从左弹出/滑出SlidingMenu
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //设置占满屏幕
mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); //绑定到哪一个Activity对象
mSlidingMenu.setMenu(R.layout.slidingmenulayout); //设置弹出的SlidingMenu的布局文件
mSlidingMenu.setBehindOffsetRes(R.dimen.cehua); //设置SlidingMenu所占的偏移
initView();
}
//按下手机的Menu键,将会弹出SlidingMenu,取代传统的Menu界面
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
mSlidingMenu.toggle(true);
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
private void initView() {
mMybtn = (Button) findViewById(R.id.mybtn);
mMybtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.mybtn:
Toast.makeText(this,"点击" ,Toast.LENGTH_LONG).show();
break;
}
}
}
4、报错地方改为:
①: if (event.hasNoModifiers()) {
handled = arrowScroll(FOCUS_FORWARD);
} else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
handled = arrowScroll(FOCUS_BACKWARD);
}
②return (float) Math.sin(f);
5、效果图