You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中使用GitHub上的DraggableDrawers开源库

Android Studio集成DraggableDrawers库实现可拖拽抽屉步骤

1. 配置依赖

1.1 添加仓库地址

  • 如果你用的是Android Studio Arctic Fox及更高版本,打开项目根目录下的settings.gradle文件,在dependencyResolutionManagement的repositories代码块中新增JitPack仓库:
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // 新增以下配置
        maven { url 'https://jitpack.io' }
    }
}
  • 如果你用的是旧版本Android Studio,打开项目根目录下的build.gradle(Project级),在allprojects的repositories代码块中添加上方的JitPack仓库配置即可。

1.2 添加库依赖

打开app模块下的build.gradle文件,在dependencies代码块中添加库依赖:

dependencies {
    // 保留你项目已有的其他依赖,新增下面一行
    implementation 'com.github.kedzie:DraggableDrawers:v0.5.0'
}

配置完成后点击Android Studio右上角的Sync Now按钮,等待Gradle同步完成无报错即可进入下一步。

2. 编辑布局文件

在需要添加拖拽抽屉的页面XML布局中,将根布局替换为DraggableDrawerLayout,示例如下:

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

    <!-- 第一个子View为主页面内容区域 -->
    <FrameLayout
        android:id="@+id/main_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FFFFFF">
        <!-- 主页面的布局内容写在这里 -->
    </FrameLayout>

    <!-- 左侧抽屉,必须设置layout_gravity为start -->
    <LinearLayout
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#F5F5F5"
        android:orientation="vertical">
        <!-- 左侧抽屉的内容写在这里 -->
    </LinearLayout>

    <!-- 右侧抽屉(可选),必须设置layout_gravity为end -->
    <LinearLayout
        android:id="@+id/right_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:background="#F5F5F5"
        android:orientation="vertical">
        <!-- 右侧抽屉的内容写在这里 -->
    </LinearLayout>

</com.makeramen.draggabledrawers.DraggableDrawerLayout>

3. 编写业务逻辑代码

在对应Activity的onCreate方法或者Fragment的onViewCreated方法中初始化控件,可根据需求配置抽屉的交互参数,Java示例代码如下:

DraggableDrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
// 设置拖拽触发的边缘范围,单位为像素,可根据需求调整
drawerLayout.setEdgeSize(getResources().getDimensionPixelSize(R.dimen.drawer_edge_size));
// 设置抽屉滑动时的阴影宽度
drawerLayout.setShadowWidthRes(R.dimen.drawer_shadow_width);

// 抽屉状态监听(可选配置)
drawerLayout.setDrawerListener(new DraggableDrawerLayout.DrawerListener() {
    @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {
        // 抽屉滑动过程回调,可实现内容联动动画
    }
    @Override
    public void onDrawerOpened(View drawerView) {
        // 抽屉完全打开回调
    }
    @Override
    public void onDrawerClosed(View drawerView) {
        // 抽屉完全关闭回调
    }
    @Override
    public void onDrawerStateChanged(int newState) {
        // 抽屉状态变化回调
    }
});

// 代码控制抽屉开关的示例方法
// 打开左侧抽屉:drawerLayout.openDrawer(GravityCompat.START);
// 关闭所有抽屉:drawerLayout.closeDrawers();

如果使用Kotlin开发,只需要调整语法格式,API调用逻辑完全一致。

常见问题排查

  • Gradle同步失败找不到依赖:检查仓库地址是否正确填写,确认网络可正常访问JitPack,也可尝试将依赖的版本号替换为库的最新正式版
  • 抽屉无法拖拽响应:检查抽屉布局的layout_gravity属性是否正确设置为start或end,确认没有其他上层控件拦截触摸事件
  • 抽屉显示异常:检查抽屉布局的宽高参数是否合理,建议侧边抽屉宽度不超过屏幕宽度的80%避免显示异常

内容的提问来源于stack exchange,提问作者NaFa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:06:06