Skip to content

Commit 5dd725b

Browse files
author
Eericxu
committed
update gradle and use view-binding
1 parent ace5f33 commit 5dd725b

8 files changed

Lines changed: 70 additions & 52 deletions

File tree

app/build.gradle

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ apply plugin: 'com.android.application'
22

33
apply plugin: 'kotlin-android'
44

5-
apply plugin: 'kotlin-android-extensions'
6-
75
android {
86
compileSdkVersion 29
97
defaultConfig {
@@ -14,25 +12,28 @@ android {
1412
versionName "1.0"
1513
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1614
}
15+
buildFeatures {
16+
viewBinding true
17+
}
1718
buildTypes {
1819
release {
1920
minifyEnabled false
2021
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2122
}
2223
}
23-
buildToolsVersion '28.0.3'
24+
buildToolsVersion '29.0.2'
2425
}
2526

2627
dependencies {
2728
implementation fileTree(include: ['*.jar'], dir: 'libs')
2829
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
29-
implementation 'androidx.appcompat:appcompat:1.1.0'
30+
implementation 'androidx.appcompat:appcompat:1.2.0'
3031
implementation 'androidx.recyclerview:recyclerview:1.1.0'
31-
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
32-
testImplementation 'junit:junit:4.13'
33-
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
34-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
32+
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
33+
testImplementation 'junit:junit:4.13.1'
34+
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
35+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
3536
implementation project(':cslibrary')
3637
implementation 'com.github.bumptech.glide:glide:4.11.0'
37-
implementation 'androidx.palette:palette:1.0.0'
38+
implementation 'androidx.palette:palette-ktx:1.0.0'
3839
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.eericxu.cslayout
2+
3+
import android.os.Bundle
4+
import androidx.viewbinding.ViewBinding
5+
6+
abstract class BindBaseAty<T : ViewBinding> : BaseAty() {
7+
lateinit var bind: T
8+
override fun onCreate(savedInstanceState: Bundle?) {
9+
super.onCreate(savedInstanceState)
10+
bind = inflate()
11+
setContentView(bind.root)
12+
}
13+
abstract fun inflate() : T
14+
}

app/src/main/java/com/eericxu/cslayout/CSAty.kt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,51 @@ import android.os.Bundle
77
import android.view.View
88
import android.widget.Toast
99
import com.bumptech.glide.Glide
10+
import com.eericxu.cslayout.databinding.AtyCsBinding
1011
import com.eericxu.cslibrary.ScaleViewGesture
1112
import com.eericxu.cslibrary.createAnimator
1213
import com.eericxu.cslibrary.finishShareAnim
1314
import com.eericxu.cslibrary.keyparms.KeyParams
1415
import com.eericxu.cslibrary.startShareAnim
15-
import kotlinx.android.synthetic.main.aty_cs.*
1616

17-
class CSAty : BaseAty() {
17+
class CSAty : BindBaseAty<AtyCsBinding>() {
18+
override fun inflate() = AtyCsBinding.inflate(layoutInflater)
1819
override fun onCreate(savedInstanceState: Bundle?) {
1920
super.onCreate(savedInstanceState)
20-
setContentView(R.layout.aty_cs)
21-
csLayout.visibility = View.INVISIBLE
21+
bind.csLayout.visibility = View.INVISIBLE
2222
val parm = intent.getParcelableExtra<KeyParams>("imgView")
23-
val params = iv_cover.layoutParams
23+
val params = bind.ivCover.layoutParams
2424
val p = Point()
2525
window.windowManager.defaultDisplay.getSize(p)
2626
params.height = (p.x * (parm.rect.height() * 1f / parm.rect.width())).toInt()
27-
iv_cover.layoutParams = params
27+
bind.ivCover.layoutParams = params
2828
Glide.with(this)
2929
.load(intent.getIntExtra("img", R.mipmap.img_1))
30-
.into(iv_cover)
30+
.into(bind.ivCover)
3131

32-
ScaleViewGesture(this).bindToView(iv_cover, csLayout)?.onClick = {
32+
ScaleViewGesture(this).bindToView(bind.ivCover, bind.csLayout)?.onClick = {
3333
Toast.makeText(it.context, "Click", Toast.LENGTH_SHORT).show()
3434
}
3535

3636
val builder = StringBuilder()
3737
for (i in 0..100) {
3838
builder.append("以敦煌为圆心的东北东\n")
3939
}
40-
tv_content.text = builder.toString()
40+
bind.tvContent.text = builder.toString()
4141
}
4242

4343
var anim: Animator? = null
4444
//父类中重写onWindowFocusChanged 当window第一次获取焦点时执行
4545
override fun onFirstFocus() {
46-
val animator = createAnimator(true, intent, "imgView", iv_cover)
46+
val animator = createAnimator(true, intent, "imgView", bind.ivCover)
4747
(animator as ValueAnimator).addUpdateListener {
48-
tv_content.translationY = iv_cover.translationY * 0.6f
49-
tv_content.translationX = iv_cover.translationX
48+
bind.tvContent.translationY = bind.ivCover.translationY * 0.6f
49+
bind.tvContent.translationX = bind.ivCover.translationX
5050
}
51-
csLayout.visibility = View.VISIBLE
51+
bind.csLayout.visibility = View.VISIBLE
5252
anim = startShareAnim(
53-
csLayout,
54-
createAnimator(true, intent, "tvTit", tv_title),
53+
bind.csLayout,
54+
createAnimator(true, intent, "tvTit", bind.tvTitle),
5555
animator
5656
)
5757
}
@@ -60,14 +60,14 @@ class CSAty : BaseAty() {
6060
override fun finish() {
6161
if (anim != null && anim?.isRunning == true)
6262
return
63-
val animator = createAnimator(false, intent, "imgView", iv_cover)
63+
val animator = createAnimator(false, intent, "imgView", bind.ivCover)
6464
(animator as ValueAnimator).addUpdateListener {
65-
tv_content.translationY = iv_cover.translationY * 0.6f
66-
tv_content.translationX = iv_cover.translationX
65+
bind.tvContent.translationY = bind.ivCover.translationY * 0.6f
66+
bind.tvContent.translationX = bind.ivCover.translationX
6767
}
6868
finishShareAnim(
69-
csLayout,
70-
createAnimator(false, intent, "tvTit", tv_title),
69+
bind.csLayout,
70+
createAnimator(false, intent, "tvTit", bind.tvTitle),
7171
animator,
7272
onAnimEnd = {
7373
superFinish()

app/src/main/java/com/eericxu/cslayout/MainActivity.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,22 @@ package com.eericxu.cslayout
22

33
import android.os.Bundle
44
import androidx.recyclerview.widget.GridLayoutManager
5-
import kotlinx.android.synthetic.main.activity_main.*
5+
import com.eericxu.cslayout.databinding.ActivityMainBinding
66

7-
class MainActivity : BaseAty() {
7+
8+
class MainActivity : BindBaseAty<ActivityMainBinding>() {
9+
override fun inflate() = ActivityMainBinding.inflate(layoutInflater)
810
val adapter = CardAdapter()
911
val manager = GridLayoutManager(this, 2)
1012
override fun onCreate(savedInstanceState: Bundle?) {
1113
super.onCreate(savedInstanceState)
12-
setContentView(R.layout.activity_main)
1314
manager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
1415
override fun getSpanSize(position: Int): Int {
1516
return if (position % 3 < 1) 2 else 1
1617
}
1718
}
18-
mList.layoutManager = manager
19-
mList.adapter = adapter
19+
bind.mList.layoutManager = manager
20+
bind.mList.adapter = adapter
2021
lifecycle.addObserver(object : LifeObserver() {
2122
override fun onResume() {
2223
adapter.onResume()
@@ -27,4 +28,6 @@ class MainActivity : BaseAty() {
2728
}
2829
})
2930
}
31+
32+
3033
}

build.gradle

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4-
ext.kotlin_version = '1.3.72'
4+
ext.kotlin_version = '1.4.21'
55
repositories {
6-
76
google()
87
jcenter()
9-
8+
maven { url "https://jitpack.io" }
109
}
1110
dependencies {
12-
classpath 'com.android.tools.build:gradle:4.0.0'
11+
classpath 'com.android.tools.build:gradle:4.1.1'
1312
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14-
13+
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
1514
// NOTE: Do not place your application dependencies here; they belong
1615
// in the individual module build.gradle files
1716
}

cslibrary/build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ apply plugin: 'com.android.library'
22

33
apply plugin: 'kotlin-android'
44

5-
apply plugin: 'kotlin-android-extensions'
5+
apply plugin: 'com.github.dcendents.android-maven'
66

7+
group='com.github.XueMoMo'
78
repositories {
89
google()
910
jcenter()
10-
maven { url "https://jitpack.io" }
1111
}
1212

1313
android {
@@ -18,6 +18,7 @@ android {
1818
versionCode 1
1919
versionName "1.0"
2020
}
21+
2122
buildTypes {
2223
release {
2324
minifyEnabled false
@@ -30,8 +31,8 @@ android {
3031
dependencies {
3132
implementation fileTree(include: ['*.jar'], dir: 'libs')
3233
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
33-
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
34-
implementation 'androidx.appcompat:appcompat:1.1.0'
34+
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
35+
implementation 'androidx.appcompat:appcompat:1.2.0'
3536

3637
}
3738

cslibrary/src/main/java/com/eericxu/cslibrary/CSLayout.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ class CSLayout : ConstraintLayout,CSInterface {
1212

1313
val csHelper = CSHelper()
1414

15-
constructor(context: Context?) : super(context)
16-
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {
15+
constructor(context: Context) : super(context)
16+
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
1717
csHelper.initAttr(context, attrs)
1818
}
1919

20-
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
20+
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
2121
csHelper.initAttr(context, attrs)
2222
}
2323

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Wed Jun 10 04:14:46 CST 2020
2-
distributionBase=GRADLE_USER_HOME
3-
distributionPath=wrapper/dists
4-
zipStoreBase=GRADLE_USER_HOME
5-
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
1+
#Tue Dec 29 16:27:57 CST 2020
2+
distributionBase=GRADLE_USER_HOME
3+
distributionPath=wrapper/dists
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

0 commit comments

Comments
 (0)