如何使用JetPack组成更改键盘颜色?

发布于 2025-01-24 02:46:26 字数 1351 浏览 0 评论 0原文

我正在使用JetPack构成Android开发。

在黑暗模式下,Textfield的背景为color.black。 但是,在敲击文本字段后,显示键盘时,背景颜色会变为白色。

这似乎是由于使用了相邻。但是,如果没有它,文本的某些部分将不在屏幕上,并且在键入时无法编辑。 因此,我认为以下任一项改进。

  • 将颜色更改为黑色,同时保持相邻。
  • 解决上述文本以不同方式伸出的文本问题

非常丑陋。 如何将这种白色背景更改为黑色?

先感谢您。

class EditorActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            TextField(
                value = "",
                onValueChange = {},
                modifier = Modifier.background(Color.Black).fillMaxSize()
            )
        }
    }
}
my activity setting in AndroidManifest.xml
<activity
    android:name=".ui.screen.episodeEdit.EditorActivity"
    android:exported="false"
    android:theme="@style/Theme.Nobel_editor"
    android:windowSoftInputMode="adjustResize"></activity>

“ alt = ://i.sstatic.net/pbk0sm.png“ alt =”键盘显示“>

I am using jetpack compose for Android development.

In dark mode, the background of the TextField is Color.Black.
However, after tapping on the TextField, when the keyboard is displayed, the background color changes to white for a moment.

This seems to be due to the use of adjustResize. However, without it, some parts of the text will be off the screen and cannot be edited while typing.
Therefore, I believe either of the following is an improvement.

  • Change the color to black while maintaining adjustResize.
  • Solve the above problem of text sticking out in a different way than adjustResize

This is very ugly.
How can I change this white background to black?

Thank you in advance.

class EditorActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            TextField(
                value = "",
                onValueChange = {},
                modifier = Modifier.background(Color.Black).fillMaxSize()
            )
        }
    }
}
my activity setting in AndroidManifest.xml
<activity
    android:name=".ui.screen.episodeEdit.EditorActivity"
    android:exported="false"
    android:theme="@style/Theme.Nobel_editor"
    android:windowSoftInputMode="adjustResize"></activity>

tap textField

keyboard moving now. this is question point

keyboard shown

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无声情话 2025-01-31 02:46:27

JetPack组成以修复钥匙板背景白色问题,您可以为可合数的父级活动添加背景颜色。打开键盘时,这将提供自定义的背景颜色。

class SigninActivity : ComponentActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {

            //Added to fix keyboard backdrop issue in screen, You can even add theme specific color
            window.decorView.setBackgroundResource(R.color.background)

            AppTheme {
                Surface(
                    color = MaterialTheme.colorScheme.surface,
                    modifier = Modifier.fillMaxSize(),
                ) {
                    Text(
                        text = stringResource(id = R.string.your_text_resource_id),
                        color = MaterialTheme.colorScheme.onSurfaceVariant,
                        style = MaterialTheme.typography.bodyMedium,
                    )
                }
            }
        }
    }
}

Jetpack compose to fix key board backdrop white color issues, you can add background color to Parent activity of composable. This will give custom background color when keyboard opens.

class SigninActivity : ComponentActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {

            //Added to fix keyboard backdrop issue in screen, You can even add theme specific color
            window.decorView.setBackgroundResource(R.color.background)

            AppTheme {
                Surface(
                    color = MaterialTheme.colorScheme.surface,
                    modifier = Modifier.fillMaxSize(),
                ) {
                    Text(
                        text = stringResource(id = R.string.your_text_resource_id),
                        color = MaterialTheme.colorScheme.onSurfaceVariant,
                        style = MaterialTheme.typography.bodyMedium,
                    )
                }
            }
        }
    }
}
So尛奶瓶 2025-01-31 02:46:27

我使用了JetPack构成1.1.1。

将版本更改为1.2.0-alpha07之后,如果没有Adjustresize选项,则全尺寸的TextField不会隐藏文本。
因此我可以删除Adjustresize。键盘背景更改为黑色。

I used jetpack compose 1.1.1.

After change version to 1.2.0-alpha07, fullsize TextField doesn't hide text without adjustResize option.
so I could remove adjustResize. and Keyboard backdrop changed to black.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文