SmoothInputLayout 开源项目教程
1. 项目的目录结构及介绍
SmoothInputLayout 项目的目录结构如下:
SmoothInputLayout/
├── app/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── java/
│ └── com/
│ └── alex/
│ └── smoothinputlayout/
│ └── MainActivity.java
├── library/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── java/
│ └── io/
│ └── github/
│ └── alexmofer/
│ └── widget/
│ └── SmoothInputLayout.java
├── build.gradle
├── settings.gradle
└── README.md
目录结构介绍
-
app/
:包含示例应用的代码和资源。build.gradle
:应用模块的构建脚本。src/main/
:应用的主要源代码和资源。AndroidManifest.xml
:应用的清单文件。java/
:包含应用的 Java 源代码。MainActivity.java
:示例应用的主活动。
-
library/
:包含 SmoothInputLayout 库的代码和资源。build.gradle
:库模块的构建脚本。src/main/
:库的主要源代码和资源。AndroidManifest.xml
:库的清单文件。java/
:包含库的 Java 源代码。SmoothInputLayout.java
:SmoothInputLayout 的主要实现类。
-
build.gradle
:项目的根构建脚本。 -
settings.gradle
:项目的设置文件,包含模块的配置。 -
README.md
:项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件是 app/src/main/java/com/alex/smoothinputlayout/MainActivity.java
。
MainActivity.java
package com.alex.smoothinputlayout;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
启动文件介绍
MainActivity
继承自AppCompatActivity
,是示例应用的主活动。onCreate
方法中调用了setContentView
方法来设置布局文件activity_main.xml
。
3. 项目的配置文件介绍
项目的配置文件主要包括 app/build.gradle
和 library/build.gradle
。
app/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.alex.smoothinputlayout"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation project(':library')
implementation 'com.android.support:appcompat-v7:30.0.0'
}
library/build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 30
defaultConfig {
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:30.0.0'
}
配置文件介绍
app/build.gradle
和library/build.gradle
分别配置了