Skip to content

Commit 1447eed

Browse files
feat(*): 优化KotlinBaseFragment
1 parent 33dbaa6 commit 1447eed

File tree

5 files changed

+66
-60
lines changed

5 files changed

+66
-60
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.pengxh.kt.lib
2+
3+
import android.os.Bundle
4+
import com.pengxh.kt.lite.base.KotlinBaseFragment
5+
import com.pengxh.kt.lite.extensions.show
6+
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
7+
import kotlinx.android.synthetic.main.fragment_first.*
8+
9+
class FirstFragment : KotlinBaseFragment() {
10+
11+
override fun initLayoutView(): Int = R.layout.fragment_first
12+
13+
override fun setupTopBarLayout() {
14+
15+
}
16+
17+
override fun initData(savedInstanceState: Bundle?) {
18+
19+
}
20+
21+
override fun observeRequestState() {
22+
23+
}
24+
25+
override fun initEvent() {
26+
button.setOnClickListener {
27+
System.currentTimeMillis().timestampToCompleteDate().show(requireContext())
28+
}
29+
}
30+
}
Lines changed: 19 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
11
package com.pengxh.kt.lib
22

33
import android.os.Bundle
4-
import android.view.View
5-
import com.luck.picture.lib.basic.PictureSelector
6-
import com.luck.picture.lib.config.SelectMimeType
7-
import com.luck.picture.lib.entity.LocalMedia
8-
import com.luck.picture.lib.interfaces.OnResultCallbackListener
9-
import com.pengxh.kt.lite.adapter.EditableImageAdapter
4+
import androidx.fragment.app.Fragment
5+
import androidx.fragment.app.FragmentManager
6+
import androidx.fragment.app.FragmentPagerAdapter
107
import com.pengxh.kt.lite.base.KotlinBaseActivity
118
import kotlinx.android.synthetic.main.activity_main.*
129

1310
class MainActivity : KotlinBaseActivity() {
1411

1512
private val kTag = "MainActivity"
16-
private val images = listOf(
17-
"https://images.pexels.com/photos/1036808/pexels-photo-1036808.jpeg",
18-
"https://images.pexels.com/photos/796602/pexels-photo-796602.jpeg",
19-
"https://images.pexels.com/photos/1109543/pexels-photo-1109543.jpeg",
20-
"https://images.pexels.com/photos/296115/pexels-photo-296115.jpeg",
21-
"https://images.pexels.com/photos/296115/pexels-photo-296115.jpeg",
22-
"https://images.pexels.com/photos/296115/pexels-photo-296115.jpeg",
23-
"https://images.pexels.com/photos/296115/pexels-photo-296115.jpeg",
24-
"https://images.pexels.com/photos/296115/pexels-photo-296115.jpeg",
25-
"https://images.pexels.com/photos/4158/apple-iphone-smartphone-desk.jpg"
26-
)
27-
private val recyclerViewImages = ArrayList<String>()
13+
private var fragmentList = ArrayList<Fragment>()
14+
15+
init {
16+
fragmentList.add(FirstFragment())
17+
}
2818

2919
override fun initLayoutView(): Int = R.layout.activity_main
3020

@@ -37,41 +27,21 @@ class MainActivity : KotlinBaseActivity() {
3727
}
3828

3929
override fun initData(savedInstanceState: Bundle?) {
40-
val imageAdapter = EditableImageAdapter(this, 9, 2f)
41-
imageGridView.adapter = imageAdapter
42-
imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener {
43-
override fun onAddImageClick() {
44-
PictureSelector.create(this@MainActivity)
45-
.openGallery(SelectMimeType.ofImage())
46-
.isGif(false)
47-
.isMaxSelectEnabledMask(true)
48-
.setFilterMinFileSize(100)
49-
.setMaxSelectNum(9)
50-
.isDisplayCamera(false)
51-
.setImageEngine(GlideLoadEngine.get)
52-
.forResult(object : OnResultCallbackListener<LocalMedia> {
53-
override fun onResult(result: ArrayList<LocalMedia>) {
54-
result.forEach {
55-
recyclerViewImages.add(it.realPath)
56-
}
57-
imageAdapter.setupImage(recyclerViewImages)
58-
}
59-
60-
override fun onCancel() {}
61-
})
62-
}
63-
64-
override fun onItemClick(position: Int) {
30+
mainViewPager.adapter = ViewPagerAdapter(supportFragmentManager, fragmentList)
31+
}
6532

66-
}
33+
override fun initEvent() {
6734

68-
override fun onItemLongClick(view: View?, position: Int) {
69-
imageAdapter.deleteImage(position)
70-
}
71-
})
7235
}
7336

74-
override fun initEvent() {
37+
inner class ViewPagerAdapter(fm: FragmentManager?, private val mFragments: List<Fragment>) :
38+
FragmentPagerAdapter(fm!!) {
39+
override fun getItem(i: Int): Fragment {
40+
return mFragments[i]
41+
}
7542

43+
override fun getCount(): Int {
44+
return mFragments.size
45+
}
7646
}
7747
}
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto"
43
android:layout_width="match_parent"
54
android:layout_height="match_parent"
65
android:gravity="center">
76

8-
<androidx.recyclerview.widget.RecyclerView
9-
android:id="@+id/imageGridView"
7+
<androidx.viewpager.widget.ViewPager
8+
android:id="@+id/mainViewPager"
109
android:layout_width="match_parent"
11-
android:layout_height="match_parent"
12-
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
13-
app:spanCount="3" />
10+
android:layout_height="match_parent" />
1411
</LinearLayout>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="match_parent">
5+
6+
<Button
7+
android:id="@+id/button"
8+
android:layout_width="wrap_content"
9+
android:layout_height="wrap_content"
10+
android:layout_centerInParent="true"
11+
android:text="@string/app_name" />
12+
</RelativeLayout>

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,16 @@ import androidx.fragment.app.Fragment
88

99
abstract class KotlinBaseFragment : Fragment() {
1010

11-
lateinit var baseView: View
12-
1311
override fun onCreateView(
1412
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
1513
): View? {
16-
baseView = inflater.inflate(initLayoutView(), container, false)
17-
initData(savedInstanceState)
18-
return baseView
14+
return inflater.inflate(initLayoutView(), container, false)
1915
}
2016

2117
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2218
super.onViewCreated(view, savedInstanceState)
2319
setupTopBarLayout()
20+
initData(savedInstanceState)
2421
observeRequestState()
2522
initEvent()
2623
}

0 commit comments

Comments
 (0)