开源项目 material-sheet-fab
使用教程
1. 项目的目录结构及介绍
material-sheet-fab
项目的目录结构如下:
material-sheet-fab/
├── README.md
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── library
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ └── gowong
│ │ │ └── materialsheetfab
│ │ │ ├── AnimationListenerAdapter.java
│ │ │ ├── CircleImageView.java
│ │ │ ├── MaterialSheetFab.java
│ │ │ ├── MaterialSheetFabOverlay.java
│ │ │ └── Sheet.java
│ │ └── res
│ │ ├── drawable
│ │ ├── layout
│ │ └── values
│ └── test
│ └── java
│ └── com
│ └── gowong
│ └── materialsheetfab
│ └── ExampleUnitTest.java
└── settings.gradle
目录结构介绍
README.md
: 项目说明文档。build.gradle
: 项目的根构建文件。gradle
: Gradle 包装器相关文件。gradlew
和gradlew.bat
: Gradle 包装器脚本。library
: 项目的主要代码库。build.gradle
: 库的构建文件。proguard-rules.pro
: ProGuard 规则文件。src
: 源代码目录。main
: 主代码目录。AndroidManifest.xml
: Android 清单文件。java
: Java 源代码目录。res
: 资源目录。
test
: 测试代码目录。
settings.gradle
: 项目设置文件。
2. 项目的启动文件介绍
项目的启动文件主要是 MaterialSheetFab.java
,位于 library/src/main/java/com/gowong/materialsheetfab/
目录下。这个文件定义了 MaterialSheetFab
类,它是项目的主要功能实现类,负责处理浮动按钮和展开面板的交互逻辑。
MaterialSheetFab.java
主要功能
- 初始化浮动按钮和展开面板。
- 处理展开和收起动画。
- 处理点击事件和触摸事件。
3. 项目的配置文件介绍
项目的配置文件主要包括 build.gradle
和 AndroidManifest.xml
。
build.gradle
根目录下的 build.gradle
文件主要配置了项目的构建工具版本和依赖管理:
// 根目录下的 build.gradle
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.0'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
library
目录下的 build.gradle
文件配置了库的构建细节:
// library/build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
}
AndroidManifest.xml
AndroidManifest.xml