Skip to content

Commit 87788dc

Browse files
committed
see o2/02 log
1 parent d90494b commit 87788dc

File tree

4 files changed

+21
-14
lines changed

4 files changed

+21
-14
lines changed

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ChildFragment.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import kotlinx.android.synthetic.main.fragment_child.*
1919
* desc : demo about FragmentUtils
2020
* ```
2121
*/
22-
class ChildFragment : BaseLazyFragment(), FragmentUtils.OnBackClickListener {
22+
class ChildFragment : BaseLazyFragment() {
2323

2424
companion object {
2525
fun newInstance(): ChildFragment {
@@ -66,9 +66,4 @@ class ChildFragment : BaseLazyFragment(), FragmentUtils.OnBackClickListener {
6666
R.id.fragmentChildRemoveBtn -> FragmentUtils.remove(this);
6767
}
6868
}
69-
70-
override fun onBackClick(): Boolean {
71-
LogUtils.d("child onBackClick")
72-
return false
73-
}
7469
}

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.transition.*
88
import android.view.View
99
import com.blankj.lib.base.BaseLazyFragment
1010
import com.blankj.utilcode.pkg.R
11+
import com.blankj.utilcode.pkg.R.id.*
1112
import com.blankj.utilcode.pkg.helper.DialogHelper
1213
import com.blankj.utilcode.util.ColorUtils
1314
import com.blankj.utilcode.util.FragmentUtils
@@ -122,7 +123,7 @@ class ContainerFragment : BaseLazyFragment(), FragmentUtils.OnBackClickListener
122123
fragmentManager!!,
123124
addSharedElement(ChildFragment.newInstance()),
124125
id,
125-
false,
126+
true,
126127
fragmentRootSharedElementIv
127128
)
128129
}

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.blankj.lib.base.BaseActivity
1111
import com.blankj.utilcode.pkg.R
1212
import com.blankj.utilcode.util.FragmentUtils
1313
import kotlinx.android.synthetic.main.activity_fragment.*
14+
import kotlinx.android.synthetic.main.fragment_child.*
1415

1516
/**
1617
* ```
@@ -29,7 +30,7 @@ class FragmentActivity : BaseActivity() {
2930
}
3031
}
3132

32-
private val mFragments = arrayOfNulls<Fragment>(3)
33+
private val mFragments = arrayListOf<Fragment>()
3334
private var curIndex: Int = 0
3435

3536
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
@@ -66,9 +67,9 @@ class FragmentActivity : BaseActivity() {
6667
}
6768
fragmentNav.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
6869

69-
mFragments[0] = RootFragment.newInstance()
70-
mFragments[1] = RootFragment.newInstance()
71-
mFragments[2] = RootFragment.newInstance()
70+
mFragments.add(RootFragment.newInstance())
71+
mFragments.add(RootFragment.newInstance())
72+
mFragments.add(RootFragment.newInstance())
7273
FragmentUtils.add(
7374
supportFragmentManager,
7475
mFragments,
@@ -83,14 +84,14 @@ class FragmentActivity : BaseActivity() {
8384
override fun onWidgetClick(view: View) {}
8485

8586
override fun onBackPressed() {
86-
if (!FragmentUtils.dispatchBackPress(supportFragmentManager)) {
87+
if (!FragmentUtils.dispatchBackPress(mFragments[curIndex])) {
8788
super.onBackPressed()
8889
}
8990
}
9091

9192
private fun showCurrentFragment(index: Int) {
9293
curIndex = index
93-
FragmentUtils.showHide(index, *mFragments)
94+
FragmentUtils.showHide(index, mFragments)
9495
}
9596

9697
override fun onSaveInstanceState(outState: Bundle, outPersistentState: PersistableBundle) {

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/RootFragment.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import kotlinx.android.synthetic.main.fragment_root.*
1717
* desc : demo about FragmentUtils
1818
* ```
1919
*/
20-
class RootFragment : BaseLazyFragment() {
20+
class RootFragment : BaseLazyFragment(), FragmentUtils.OnBackClickListener {
2121

2222
companion object {
2323
fun newInstance(): RootFragment {
@@ -46,4 +46,14 @@ class RootFragment : BaseLazyFragment() {
4646
override fun doLazyBusiness() {}
4747

4848
override fun onWidgetClick(view: View) {}
49+
50+
override fun onBackClick(): Boolean {
51+
if (FragmentUtils.dispatchBackPress(childFragmentManager)) return true
52+
return if (childFragmentManager.backStackEntryCount == 0) {
53+
false
54+
} else {
55+
childFragmentManager.popBackStack()
56+
true
57+
}
58+
}
4959
}

0 commit comments

Comments
 (0)