更改撰写搜索栏中的颜色

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

我一直在尝试使用新的 compose SearchBar 可组合项。除了我无法更改搜索输入文本字段的颜色之外,一切都很顺利。

这是我的代码:

 SearchBar(
   ...
   colors = SearchBarDefaults.colors(
                    inputFieldColors = TextFieldDefaults.colors(
                        unfocusedContainerColor = Color.Red,
                        focusedContainerColor = Color.Red,
                        focusedIndicatorColor = Color.Red,
                        unfocusedIndicatorColor = Color.Red,
                        disabledIndicatorColor = Color.Red,
                    )
                ), tonalElevation = 0.dp

我已将其设置为红色以查看一切是否正常。 正如您在图片中看到的那样,根本没有红色。 tonalElevation 故意设为 0.dp。 基本上我希望文本字段有较暗的背景

no red to be seen

android-jetpack-compose searchbar
2个回答
0
投票

我刚刚从

inputFieldColors
可组合项的源代码中读到了这个。

创建一个TextFieldColors,表示不同状态下搜索栏输入字段使用的不同颜色。 输入字段中仅使用 TextFieldColors 参数完整列表的子集。所有其他参数都没有影响。

因此,更改我在问题中提到的属性将不会产生任何效果。


0
投票

对于任何有同样问题的人,为了使颜色生效,您应该将它们放在输入字段中,如下所示:

SearchBar(inputField = {
    SearchBarDefaults.InputField(
        state = searchFieldState,
        onSearch = {},
        expanded = false,
        onExpandedChange = {},
        placeholder = { Text(text = "Search Reference") },
        leadingIcon = {
            Icon(
                painter = painterResource(id = R.drawable.baseline_search_24),
                contentDescription = "Search Icon"
            )
        },
        // Change the colors here
        colors = SearchBarDefaults.inputFieldColors(
            focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
            unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer)

    )
}, expanded = false, onExpandedChange = {}) {

}
© www.soinside.com 2019 - 2024. All rights reserved.