安卓开发:SliddingMenu的使用和配置

时间:2018.10.21

GitHub开源项目SlidingMenu:https://github.com/jfeinstein10/SlidingMenu

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))

    }

 
 

 
  
  

猜你喜欢

转载自blog.csdn.net/mingdai7348/article/details/83239076
今日推荐