【问题标题】:How to style React Native <CheckBox> component?如何设置 React Native <CheckBox> 组件的样式?
【发布时间】:2018-03-20 04:00:12
【问题描述】:

是否可以为 React Native CheckBox 组件设置样式?

此处未列出 style 属性:https://facebook.github.io/react-native/docs/checkbox.html

我在上面放了一个无效的样式属性,然后弹出的 RN 警告消息告诉我所有有效的 CSS 属性,但它们都没有对样式做任何有益的事情。

组件看起来不错,但我想将它从蓝绿色更改为品牌颜色。

有可能吗?

这些属性不起作用,但被列为 CheckBox 的有效样式属性:

{
  height: 50,             // changes the hitspace but not the checkbox itself
  width: 50,
  borderWidth: 1,         // does nothing
  backgroundColor: 'red', // makes the area around and inside the checkbox red
  borderColor: 'green',   // does nothing
  borderStyle: 'dotted'   // does nothing
}

如果每个人都制作自己的复选框,我不明白为什么它甚至存在。如果我这样做了,我真的没有任何用处,因为它提供的只是

value={this.state.rememberMe}
onValueChange={() => this.toggleRememberMe()}

除非它在引擎盖下有什么魔法。它有一个不错的 onChange 动画,但是当我自己制作并使用像 &lt;TouchableHighlight or Opacity&gt; 围绕开/关图像或 &lt;View&gt; 之类的东西时,它会立即被弃用。

除了数百个自定义复选框外,我在 Google 上找不到任何信息。实际上很难在它们周围搜索。

【问题讨论】:

标签: css reactjs checkbox react-native


【解决方案1】:

Transform 可以用来改变 CheckBox 的大小。

<CheckBox
  style={{ transform: [{ scaleX: 0.8 }, { scaleY: 0.8 }] }}
/>

checkbox examples

https://github.com/react-native-checkbox/react-native-checkbox

【讨论】:

    【解决方案2】:

    您可以使用https://github.com/react-native-community/react-native-checkbox

    Android:你可以使用tintColors

     import CheckBox from '@react-native-community/checkbox';
     .
     .
     .
     <CheckBox
          value={option.item.selected}  
          onValueChange={() => {}}
          tintColors={{ true: '#F15927', false: 'black' }}
     />
    

    【讨论】:

    • 它工作正常,我在我的应用程序中使用。 "@react-native-community/checkbox": "^0.4.2"
    • 是的!小心使用 tintColors(最后有一个 's'),而不是像我以前那样使用 tintColor...
    【解决方案3】:

    不,我找不到方法,但将其包装在 View 中是一种选择:

       <View style={{
          position: 'absolute',
          right: 0,
          width: 50,
          height: 50,
          margin: 10,
          zIndex: 100,
        }}>
          <Checkbox
            status={i === index ? 'checked' : 'unchecked'}
            className=""
    
          />
        </View>
    

    【讨论】:

      【解决方案4】:

      是的,你可以,我建议你使用 react native 元素,使用这个库你有 2 个选项,checkedColoruncheckedColor,默认情况下,checkedColor 是绿色,但你可以将其更改为你想要的,例如checkedColor={"#fff"}checkedColor="#fff" 试试吧,它申请了2个选项,祝你好运!

      【讨论】:

      【解决方案5】:

      简短的回答是你根本做不到。 React Native 使用原生的 Android Checkbox 组件,您要做的唯一自定义是更改色调颜色,如 react-native-checkbox community project 中所示。这个道具在 React Native 官方文档中没有记录。

      此外,这是该组件的 TypeScript 定义:AndroidCheckBoxNativeComponent.js。请注意中继到本机组件的唯一 props 是 onChangeonValueChangetestIDonenabledtintColors

      【讨论】:

        【解决方案6】:

        现在可以了.. 只是简单地给出与背景颜色相同的色调

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-22
          • 1970-01-01
          • 2018-08-26
          • 2022-10-16
          • 1970-01-01
          • 2021-08-22
          相关资源
          最近更新 更多