Skip to content

Commit 5394f3d

Browse files
feat(*): 升级Base包
1 parent 394b40a commit 5394f3d

File tree

4 files changed

+40
-24
lines changed

4 files changed

+40
-24
lines changed

app/src/main/java/com/pengxh/kt/lib/MainActivity.kt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
11
package com.pengxh.kt.lib
22

33
import android.os.Bundle
4-
import androidx.appcompat.app.AppCompatActivity
54
import com.pengxh.kt.lib.databinding.ActivityMainBinding
6-
import com.pengxh.kt.lite.extensions.binding
5+
import com.pengxh.kt.lite.base.KotlinBaseActivity
76
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
87

9-
class MainActivity : AppCompatActivity() {
8+
class MainActivity : KotlinBaseActivity<ActivityMainBinding>() {
109

1110
private val kTag = "MainActivity"
1211
private val context = this@MainActivity
13-
private val binding: ActivityMainBinding by binding()
1412

15-
override fun onCreate(savedInstanceState: Bundle?) {
16-
super.onCreate(savedInstanceState)
13+
override fun initViewBinding() = ActivityMainBinding.inflate(layoutInflater)
1714

15+
16+
override fun setupTopBarLayout() {
17+
18+
}
19+
20+
override fun initOnCreate(savedInstanceState: Bundle?) {
21+
22+
}
23+
24+
override fun observeRequestState() {
25+
26+
}
27+
28+
override fun initEvent() {
1829
binding.showDialogButton.setOnClickListener {
1930
AlertControlDialog.Builder()
2031
.setContext(this)

lite/src/main/java/com/pengxh/kt/lite/base/KotlinBaseActivity.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,26 @@ package com.pengxh.kt.lite.base
22

33
import android.os.Bundle
44
import androidx.appcompat.app.AppCompatActivity
5+
import androidx.viewbinding.ViewBinding
56

6-
abstract class KotlinBaseActivity : AppCompatActivity() {
7+
abstract class KotlinBaseActivity<VB : ViewBinding> : AppCompatActivity() {
8+
9+
protected lateinit var binding: VB
710

811
override fun onCreate(savedInstanceState: Bundle?) {
912
super.onCreate(savedInstanceState)
10-
setContentView(initLayoutView())
13+
binding = initViewBinding()
14+
setContentView(binding.root)
1115
setupTopBarLayout()
12-
initData(savedInstanceState)
16+
initOnCreate(savedInstanceState)
1317
observeRequestState()
1418
initEvent()
1519
}
1620

1721
/**
18-
* 初始化xml布局
22+
* 初始化ViewBinding
1923
*/
20-
abstract fun initLayoutView(): Int
24+
abstract fun initViewBinding(): VB
2125

2226
/**
2327
* 特定页面定制沉浸式状态栏
@@ -27,7 +31,7 @@ abstract class KotlinBaseActivity : AppCompatActivity() {
2731
/**
2832
* 初始化默认数据
2933
*/
30-
abstract fun initData(savedInstanceState: Bundle?)
34+
abstract fun initOnCreate(savedInstanceState: Bundle?)
3135

3236
/**
3337
* 数据请求状态监听

lite/src/main/java/com/pengxh/kt/lite/base/KotlinBaseFragment.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,31 @@ import android.os.Bundle
44
import android.view.LayoutInflater
55
import android.view.View
66
import android.view.ViewGroup
7-
import androidx.annotation.LayoutRes
87
import androidx.fragment.app.Fragment
8+
import androidx.viewbinding.ViewBinding
99

10-
abstract class KotlinBaseFragment : Fragment() {
10+
abstract class KotlinBaseFragment<VB : ViewBinding> : Fragment() {
1111

12-
lateinit var bv: View
12+
private lateinit var _binding: VB
13+
14+
protected val binding get() = _binding
1315

1416
override fun onCreateView(
1517
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
1618
): View? {
17-
bv = inflater.inflate(initLayoutRes(), container, false)
18-
initView(savedInstanceState)
19-
setupTopBarLayout()
20-
return bv
19+
_binding = initViewBinding(inflater, container)
20+
return _binding.root
2121
}
2222

2323
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2424
super.onViewCreated(view, savedInstanceState)
25+
initOnCreate(savedInstanceState)
26+
setupTopBarLayout()
2527
observeRequestState()
2628
initEvent()
2729
}
2830

29-
@LayoutRes
30-
abstract fun initLayoutRes(): Int
31+
abstract fun initViewBinding(inflater: LayoutInflater, container: ViewGroup?): VB
3132

3233
/**
3334
* 沉浸式状态栏
@@ -37,7 +38,7 @@ abstract class KotlinBaseFragment : Fragment() {
3738
/**
3839
* 初始化布局以及控件
3940
*/
40-
abstract fun initView(savedInstanceState: Bundle?)
41+
abstract fun initOnCreate(savedInstanceState: Bundle?)
4142

4243
/**
4344
* 网络请求状态监听
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.pengxh.kt.lite.extensions
22

3-
import androidx.activity.ComponentActivity
3+
import androidx.appcompat.app.AppCompatActivity
44
import androidx.viewbinding.ViewBinding
55

6-
inline fun <reified VB : ViewBinding> ComponentActivity.binding() =
6+
inline fun <reified VB : ViewBinding> AppCompatActivity.binding() =
77
lazy(LazyThreadSafetyMode.NONE) {
88
inflateBinding<VB>(layoutInflater).also { setContentView(it.root) }
99
}

0 commit comments

Comments
 (0)