Request recomposition after view gets created
This commit is contained in:
1 parent
d34075d29d
commit
717cbe7630
2 files changed
+13
No files matched your search
@@ -47,6 +47,7 @@ import androidx.compose.material3.NavigationDrawerItem
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.rememberDrawerState
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.currentRecomposeScope
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
@@ -197,6 +198,11 @@ class MainActivity : EhActivity() {
|
||||
|
||||
var drawerLocked by mutableStateOf(false)
|
||||
private var openDrawerFlow = MutableSharedFlow<Unit>(extraBufferCapacity = 1)
|
||||
private var recomposeFlow = MutableSharedFlow<Unit>(extraBufferCapacity = 1)
|
||||
|
||||
fun recompose() {
|
||||
recomposeFlow.tryEmit(Unit)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
installSplashScreen()
|
||||
@@ -205,6 +211,7 @@ class MainActivity : EhActivity() {
|
||||
setMD3Content {
|
||||
val drawerState = rememberDrawerState(DrawerValue.Closed)
|
||||
val scope = rememberCoroutineScope()
|
||||
val recomposeScope = currentRecomposeScope
|
||||
fun isSelected(id: Int) = ::navController.isInitialized && id == navController.currentDestination?.id
|
||||
fun closeDrawer() = scope.launch { drawerState.close() }
|
||||
LaunchedEffect(Unit) {
|
||||
@@ -212,6 +219,11 @@ class MainActivity : EhActivity() {
|
||||
drawerState.open()
|
||||
}
|
||||
}
|
||||
LaunchedEffect(Unit) {
|
||||
recomposeFlow.collect {
|
||||
recomposeScope.invalidate()
|
||||
}
|
||||
}
|
||||
BackHandler(drawerState.isOpen) {
|
||||
closeDrawer()
|
||||
}
|
||||
|
||||
@@ -128,6 +128,7 @@ abstract class BaseScene : Fragment() {
|
||||
setContentView(it)
|
||||
}
|
||||
}
|
||||
mainActivity?.recompose()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
|
||||
Reference in new issue
Block a user