SlidingMenu拖拽出来是白板怎么办?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

SlidingMenu拖拽出来是白板怎么办?

2016-03-06 09:55:12 2055 1

MainActivity如下:


import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.KeyEvent;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends AppCompatActivity {

    private SlidingMenu slidingMenu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });


        slidingMenu = new SlidingMenu(this);
        slidingMenu.setMode(SlidingMenu.LEFT);//设置模式,在左边
        slidingMenu.setBehindOffset(R.dimen.sliding_menu_offset);//设置出来的宽度
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置全屏都可触摸拖出
        slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//绑定当前activity
        slidingMenu.setMenu(R.layout.sliding_menu);//绑定布局视图
    }

//重写KeyDown方法,绑定菜单按键拉出SlidingMenu
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_MENU:
                slidingMenu.toggle(true);
                break;
            default:
                break;
        }
        return super.onKeyDown(keyCode, event);
    }
}

sliding_menu.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:background="#ff8990">

    <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/slidingmenu">

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Check me!"
            android:background="#0f0"/>
    </com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
</LinearLayout>

androidStudio配置方法:把SlidingMenu_master中的Library,复制到项目下的libraries目录下,修改library的build.gradle,修改项目下的setting.gradle。
library下build.gradle如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}
apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    sourceSets {
        main {
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']

            manifest.srcFile 'AndroidManifest.xml'
        }
    }

}

app下build.gradle如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.wuzhiqiang.learnslidingmenu"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile project(':library')
}

setting.gradle如下:
`
include ':app',':library'
project(':library').projectDir = new File('libraries/library')`
运行效果如下:
1

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:54:03
    // AttachExample.java
    // onCreate()
            // configure the SlidingMenu
            menu = new SlidingMenu(this);
            menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
            menu.setShadowWidthRes(R.dimen.shadow_width);
            menu.setShadowDrawable(R.drawable.shadow);
            menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
            menu.setFadeDegree(0.35f);
            menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

    // 上面的代码,是你配置过的,
    // 需要特别注意以下的代码:

            menu.setMenu(R.layout.menu_frame);
            getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.menu_frame, new SampleListFragment())
            .commit();

    先来看下R.layout.menu_frame是什么:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/menu_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    这只是一个空的布局,你可以把它当做一个Fragment的容器。SlidingMenu提前注册了一个空的布局,需要你用自己的menu去替换它:.replace(R.id.menu_frame, new SampleListFragment())

    你并没有替换,所以看到的是空的。
    这种做法的本质是把一个包含menu的Fragment视图添加给Activity。

    0 0
相关问答

1

回答

冒泡排序法 请问这三行是什么意思? for(j=0;j<10;j++) printf(" %d",a[j]); printf("\n");

2018-07-18 09:07:51 1162浏览量 回答数 1

1

回答

已知数组 var stringArray = ["This", "is", "Baidu", "Ca

2019-11-28 14:34:44 411浏览量 回答数 1

1

回答

无类别域间路由( Classle ss In ter-Domain Routing, CIDR )

2022-04-05 17:50:20 114浏览量 回答数 1

1

回答

[@倚贤][¥20]如何在git中用命令获取n次commit的相关文件列表?不是git show

2018-12-14 15:25:53 1382浏览量 回答数 1

3

回答

Ubuntu 16.04安装docker加速器后无法启动docker

2016-11-17 20:04:40 6093浏览量 回答数 3

0

回答

如何在C的嵌套for循环结构中处理printf?

2019-12-02 22:59:45 154浏览量 回答数 0

0

回答

ECS Windows 系统 SVCHOST.EXE进程占用资源(CPU,内存)较高的处理是什么

2017-10-24 11:10:52 2868浏览量 回答数 0

1

回答

docker run --cpu-rt-period是什么意思呢?

2021-10-28 16:06:18 195浏览量 回答数 1

1

回答

Spring 中的ISOLATION_ READ—UN COMMITTED 隔离级别是指什么?

2022-01-13 16:03:28 292浏览量 回答数 1

2

回答

OSS .NET SDK InvalidBucketName

2018-06-15 04:40:00 948浏览量 回答数 2
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载