SlidingMenu是github上的一個滑動菜單的開源控件,很多應用都已經使用這個控件做爲自己App的側劃菜單,如果不想自己重複的造輪子或者只是簡單的側滑的需求話,完全可以使用這個控件。那麼下面就來說說這個控件的使用。
- 下載該控件
從github上通過git clone命令下載這個控件。地址是https://github.com/jfeinstein10/SlidingMenu.git 導入到工程中
在AndroidStudio中新建一個工程。
新建之後之後,點擊File->New->import Module引入我們的SlidingMenu控件,引入的時候要定位到libaray這個目錄。
導入之後會出現一些錯誤,出現這些錯誤的原因是Slidingenu所使用的gradle版本,依賴庫等版本與我們使用的版本不一致導致的,所以需要將libarary和應用的配置同步一下。切換到project視圖下
選擇library目錄下的build.gradle文件,將該目錄下的配置項用app的gradle中配置項目替換掉
重新sync一下就可以消除這些錯誤。重新切換爲android視圖,給工程添加library的依賴,那麼我們就可以開始使用SlidingMenu這個控件了。
控件的使用
SlidingMenu控件的使用有三種用法:在activity中通過編碼的方法加入,通過繼承SlidingActivity的方式引入,通過XML文件配置的方式使用-在activity中通過編碼的方法
public class MainActivity extends AppCompatActivity {
SlidingMenu mMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//新建一個SlidingMenu
mMenu = new SlidingMenu(this);
//設置SlidingMenu的方向
mMenu.setMode(SlidingMenu.LEFT);
//設置當菜單劃出的時候,可以點擊的區域是整個屏幕
mMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//設置菜單距離屏幕右端的距離
mMenu.setBehindOffset(400);
//設置漸變效果
mMenu.setFadeDegree(0.1f);
//添加到當前的activity中
mMenu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
//設置menu的菜單
mMenu.setMenu(R.layout.menu_item);
}
}
- 通過繼承的方式
public class CustomActivity extends SlidingActivity {
SlidingMenu mMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
this.setBehindContentView(R.layout.menu_item);
mMenu = this.getSlidingMenu();
mMenu.setMode(SlidingMenu.LEFT);
mMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
mMenu.setBehindOffset(200);
mMenu.setFadeDegree(0.4f);
}
}
- 通過XML佈局文件的方式
<?xml version="1.0" encoding="utf-8"?>
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sliding="http://schemas.android.com/apk/res-auto"
android:id="@+id/slidingmenulayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
sliding:behindOffset="200dp"
sliding:behindScrollScale="0.85"
sliding:fadeDegree="0.45"
sliding:fadeEnabled="true"
sliding:touchModeAbove="fullscreen"
sliding:viewAbove="@layout/activity_main"
sliding:viewBehind="@layout/menu_item" />
屬性一一講解:
- viewAbove:顯示在上層的view視圖,一般作爲主view的佈局文件
- viewBehind:顯示在下層的view視圖,一般作爲menu菜單的佈局文件
- touchModeAbove:當上層view可見的時候,屏幕的可觸摸區域,fullscreen是全屏可以點擊,margin是隻有左邊可以點擊,默認是margin
- behindOffset:菜單view距離邊界的距離。
- behindWidth:菜單的寬度
- behindScrollScale:菜單項滑動的距離和主view滑動距離的比例,當爲0的時候,菜單不滑動。
- shadowDrawable:設置陰影
- shadowWidth:設置陰影寬度
- fadeEnabled:漸變開關
- fadeDegree:陰影大小,0~1
- selectorEnabled:選擇開關
- selectorDrawable:選擇圖片