首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >反应本地选择样式- ANDROID

反应本地选择样式- ANDROID
EN

Stack Overflow用户
提问于 2017-04-21 15:37:38
回答 6查看 37.2K关注 0票数 9

我正在尝试添加一些样式来响应--本地选择器,比如基础和设置占位符,但无法这样做。

代码语言:javascript
运行
复制
const styles = StyleSheet.create({
  picker: {
    textDecorationLine: 'underline'
  }
});

<Picker
   style={[styles.picker]}>
   <Picker.Item label="Country" value="" />
   <Picker.Item label="United States" value="US" />
   <Picker.Item label="India" value="IN" />
</Picker>
  1. 如果我使用value="",那么它将国家显示为一个可选择的值,这是我不想要的。
  2. textDecorationLine无法将下划线样式设置为选择器。

基本上,我是想创造出这样的东西,

在哪里,我也可以设置占位符的颜色。

非常感谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-03 17:39:52

采摘器和选择项的样式是在Android上本地处理的。您需要为Android的SpinnerItem在android/app/src/res/styles.xml中定义样式参见:How to style the standard react-native android picker?

我试着测试下划线,但似乎找不到起作用的东西。下面是几个解决方案-- Android spinner with underline appcompat

然而,我只想简单地使用react的本地组件来实现我们的优势。我会创建一个新的组件,它封装了本机的选择器,并将选择器放在一个带有下划线样式的视图中,如果Picker的值未定义,就会呈现占位符。

票数 19
EN

Stack Overflow用户

发布于 2020-01-20 04:53:39

您也可以使用它来使您的反应更具吸引力--原生picker.You可以向您的视图中添加样式,这样它就可以轻松地对您的选择程序进行更改。

代码语言:javascript
运行
复制
import React, { Component } from 'react';
import { View, Picker } from 'react-native';
export default class DropdownDemo extends Component{
    state = { user: '' }
    updateUser = (user) => {
        this.setState({ user: user })
    }
    render(){
        return(
            <View
                    style={{
                        width: 300,
                        marginTop: 15,
                        marginLeft:20,
                        marginRight:20,
                        borderColor: 'black',
                        borderBottomWidth:1,
                        borderRadius: 10,
                        alignSelf: 'center'
                    }}>
                    <Picker
                        selectedValue={this.state.user}
                        onValueChange={this.updateUser}


                    >
                        <Picker.Item label="Male" value="Male" />
                        <Picker.Item label="Female" value="Female" />
                        <Picker.Item label="Other" value="Other" />
                    </Picker>
                </View>
        );
    }
}
票数 3
EN

Stack Overflow用户

发布于 2017-09-25 21:10:55

您需要修改您的活动主题如下:

代码语言:javascript
运行
复制
<!-- Base application theme. -->
<style name="AppTheme">
    <!-- Customize your theme here. -->
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:spinnerStyle">@style/Base.Widget.AppCompat.Spinner.Underlined</item>
    ...
</style>

colorAccent控制下划线的颜色,使用@style/Base.Widget.AppCompat.Spinner.UnderlinePicker上提供下划线。

您可以使用这种技术来设置几乎任何android组件的样式。android:editTextStyleandroid:textViewStyle等。

不幸的是,由于React扩展了Spinner而不是AppCompatSpinner,所以如果在API < 21上运行,样式就会有所不同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43546763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档