1. 程式人生 > >安卓開發:SliddingMenu的使用和配置

安卓開發:SliddingMenu的使用和配置

時間:2018.10.21

Adroid Studio(AS,我的是最新版2.3.1)中匯入

1.在原來的專案中加入SlidingMenu-master中的library(我把這個資料夾重新命名為SliddingMenu_library)

第一種方法:使用file->new->impot module,然後

第二種方法:把SliddingMenu_library資料夾拷到新建專案資料夾中與app資料夾同級,在settings.gradle檔案中新增 include ':SliddingMenu_library‘

2.匯入後,會發現提示錯誤,在修改SliddinMenu_library的build.gradle

(參照app中的build.gradle)修改implementation、compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion

3.修改SliddinMenu_library的AndroidManifest.xml

4.因為github上的這個專案時間有點久了,所以裡面的一些東西過時了

修改SliddinMenu_library/src下的CustomViewAbove.java(以上匯入後,會出錯)

第一個,

檢視FloatMath的程式碼,可以看到其sin方法其實就是使用Math.sin()所以直接將FloatMath改成Math

第二個,android.support.v4.view.KeyEventCompat找不到

import android.support.v4.view.KeyEventCompat;  去掉

將紅框的去掉換黃框的,因為KeyEventCompat類的hasNoModifiers方法已經KeyEvent實現了,可以直接使用函式的引數event

5.以上匯入庫就完成了,現在關聯庫

第一種方法:app上右鍵->open module settings ->dependencies -> + ->modules dependency ->SliddinMenu_library -> OK -> OK

第二種方法:app/build.gradle的dependencies新增上implementation projecn(':SlidingMenu_library'),然後Sync Now執行一下更改的配置(AS修改配置在右上角會提醒Sync Now一下)

到此,就可以在我們自己的程式碼裡使用了

SlidingMenu基本使用:

繼承SlidingFramntActivity類onCreate()方法改成public(自動是protected),一個小例子

public class MainActivity extends SlidingFragmentActivity {

    @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         //設定主頁面         setContentView(R.layout.activity_main);         //設定左選單         setBehindContentView(R.layout.activity_leftmenu);

        SlidingMenu slidingMenu = getSlidingMenu();         //設定右側選單         //slidingMenu.setSecondaryMenu(R.layout.activity_rightmenu);

        //設定顯示的模式:左側選單+主頁SlidingMenu.LEFT;左側選單+主頁+右側選單SlidingMenu.LEFT_RIGHT;主頁+右側選單SlidingMenu.RIGHT         slidingMenu.setMode(SlidingMenu.LEFT);         //設定滑動模式:滑動邊緣、全屏滑動SlidingMenu.TOUCHMODE_FULLSCREEN、不可以滑動         slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);         //設定主頁佔據的寬度         slidingMenu.setBehindOffset(DensityUtil.dip2px(MainActivity.this, 200))

    }