Skip to content

Commit 2cfa57b

Browse files
author
elgroup
committed
bugs fixes
1 parent 7c979bd commit 2cfa57b

File tree

1 file changed

+54
-11
lines changed

1 file changed

+54
-11
lines changed

app/src/main/java/com/example/backstack_bottomnavigation/MainActivity.kt

Lines changed: 54 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
package com.example.backstack_bottomnavigation
22

3-
import android.os.Build
43
import androidx.appcompat.app.AppCompatActivity
54
import android.os.Bundle
65
import android.util.Log
76
import android.view.MenuItem
8-
import android.widget.Toast
9-
import androidx.annotation.RequiresApi
107
import androidx.fragment.app.Fragment
118
import androidx.fragment.app.FragmentManager
12-
import com.example.backstack_bottomnavigation.R
139
import com.example.backstack_bottomnavigation.fragments.HomeFragment
1410
import com.example.backstack_bottomnavigation.fragments.MidFragment
1511
import com.example.backstack_bottomnavigation.fragments.ProfileFragment
1612
import com.google.android.material.bottomnavigation.BottomNavigationView
17-
import com.google.android.material.navigation.NavigationView
1813
import java.util.*
1914

2015
class MainActivity : AppCompatActivity() {
@@ -28,7 +23,7 @@ import java.util.*
2823
super.onCreate(savedInstanceState)
2924
setContentView(R.layout.activity_main)
3025
//doWork()
31-
init()
26+
init(savedInstanceState)
3227
}
3328

3429

@@ -56,12 +51,55 @@ import java.util.*
5651

5752
}
5853

59-
private fun init() {
60-
homeFragment= HomeFragment()
61-
midFragment= MidFragment()
62-
profileFragment= ProfileFragment()
54+
private fun init(savedInstanceState: Bundle?) {
6355

6456
bottomNavigation=findViewById(R.id.btm_nav)
57+
if (savedInstanceState==null){
58+
homeFragment= HomeFragment()
59+
midFragment= MidFragment()
60+
profileFragment= ProfileFragment()
61+
updateFragment(homeFragment,"home")
62+
}else{
63+
64+
currentTag=savedInstanceState.getString("currentTag")!!
65+
currentFragment=supportFragmentManager.findFragmentByTag(currentTag)
66+
if (supportFragmentManager.findFragmentByTag("home")==null){
67+
homeFragment= HomeFragment()
68+
}else{
69+
homeFragment=supportFragmentManager.findFragmentByTag("home")!!
70+
}
71+
if (supportFragmentManager.findFragmentByTag("mid")==null){
72+
midFragment= MidFragment()
73+
}else{
74+
midFragment=supportFragmentManager.findFragmentByTag("mid")!!
75+
}
76+
if (supportFragmentManager.findFragmentByTag("profile")==null){
77+
profileFragment= ProfileFragment()
78+
}else{
79+
profileFragment= supportFragmentManager.findFragmentByTag("profile")!!
80+
}
81+
82+
when(currentTag){
83+
"home"->{
84+
updateFragment(homeFragment,"home")
85+
bottomNavigation.selectedItemId=R.id.action_home
86+
87+
}
88+
"mid"->{
89+
updateFragment(midFragment,"mid")
90+
bottomNavigation.selectedItemId=R.id.action_mid
91+
92+
}
93+
"profile"->{
94+
updateFragment(profileFragment,"profile")
95+
bottomNavigation.selectedItemId=R.id.action_profile
96+
97+
}
98+
99+
}
100+
101+
}
102+
65103
bottomNavigation.setOnNavigationItemSelectedListener(object :BottomNavigationView.OnNavigationItemSelectedListener{
66104
override fun onNavigationItemSelected(item: MenuItem): Boolean {
67105
when(item.itemId){
@@ -87,7 +125,7 @@ return false
87125
}
88126

89127
})
90-
updateFragment(homeFragment,"home")
128+
91129
}
92130

93131
fun updateFragment(fragment:Fragment, tag:String){
@@ -172,5 +210,10 @@ return false
172210

173211

174212

213+
}
214+
215+
override fun onSaveInstanceState(outState: Bundle) {
216+
outState.putString("currentTag",currentTag)
217+
super.onSaveInstanceState(outState)
175218
}
176219
}

0 commit comments

Comments
 (0)