BottomBar 覆盖的 TextField - Jetpack Compose

问题描述 投票:0回答:0

您好,我有一个包含多个文本字段的注册屏幕,我使用 adjustResize 和底部栏中的一个按钮。当键盘打开时,如何使文本字段始终移动到底部栏上方。在文本字段位于屏幕底部的情况下,当我单击它时可以正常填充它,但它被底栏覆盖了。

    Scaffold(
        modifier = Modifier.clearFocus(),
        topBar = {
            MainTopBar(
                leadingIcon = R.drawable.ic_back,
                onLeadingClick = {
                    navController.navigateUp()
                }
            )
        },
        bottomBar = {
            MainButton(
                modifier = Modifier.fillMaxWidth().padding(16.dp),
                onClick = { /*TODO*/ }, 
                text = "asdasda",
            )
        }
    ) { innerPadding ->
        Column(
            modifier = Modifier
                .verticalScroll(rememberScrollState())
                .fillMaxSize()
                .padding(innerPadding)
                .padding(horizontal = dimensionResource(id = R.dimen.regular_padding))
        ) {
            MainHeader(title = stringResource(id = R.string.register))
            Spacer(modifier = Modifier.height(dimensionResource(id = R.dimen.regular_padding)))

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )

            InputTextField(
                value = "",
                onValueChange = { email ->
                },
                placeholder = stringResource(id = R.string.email),
                error = false,
                keyboardType = KeyboardType.Email,
                imeAction = ImeAction.Next,
                textFiledType = TextFiledType.CENTERED
            )
        }
    }

我尝试使用 WindowInsets 但我不知道这是否是解决此问题的方法。另一方面,调整平移选项导致键盘打开时无法滚动整个屏幕。

android kotlin android-jetpack-compose
© www.soinside.com 2019 - 2024. All rights reserved.