Ast*_*tro 6 uikeyboard bottom-sheet android-jetpack android-jetpack-compose
设备的键盘与具有文本字段的 ModalBottomSheet 重叠,我已经android:windowSoftInputMode="adjustResize"
在清单文件中设置并使用了imePadding
底部工作表内容。
到目前为止,这是我的代码:
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val loadProfileModalBottomSheetState = rememberModalBottomSheetState()
val saveProfileModalBottomSheetState = rememberModalBottomSheetState()
val scope = rememberCoroutineScope()
val navController = rememberNavController()
EqualizerTheme {
Scaffold(
modifier = Modifier.fillMaxSize(),
topBar = {...}
) { paddingValues ->
MainNavGraph(navController = navController, paddingValues = paddingValues)
if (loadProfileModalBottomSheetState.isVisible) {
LoadProfilesBottomSheet(
sheetState = loadProfileModalBottomSheetState,
onHide = { scope.launch { loadProfileModalBottomSheetState.hide() } }
)
}
if (saveProfileModalBottomSheetState.isVisible){
SaveProfileBottomSheet(
sheetState = saveProfileModalBottomSheetState,
onHide = { scope.launch { saveProfileModalBottomSheetState.hide() } }
)
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
@Composable
fun SaveProfileBottomSheet(
modifier: Modifier = Modifier,
sheetState: SheetState,
onHide: () -> Unit,
viewModel: ProfileStorageViewModel = hiltViewModel()
) {
val state = viewModel.state.collectAsState().value
ModalBottomSheet(
modifier = modifier,
sheetState = sheetState,
onDismissRequest = {
onHide()
}
) {
SaveProfileBottomSheetContent(
modifier = Modifier.imePadding(),
profileName = state.profileName,
onProfileNameChange = viewModel::onProfileNameChange,
onHide = {
onHide()
},
onSave = {
onHide()
viewModel.onSave()
}
)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1667 次 |
最近记录: |