如何在React Native中正确调整多个复选框?

时间:2019-06-11 13:28:59

标签: javascript reactjs react-native checkbox ecmascript-6

我正在使用react-native-check-box在我的应用中实现复选框。

假设我必须创建4个复选框,并且它应该正确呈现。但是现在渲染了4个框,但它们的文本却在上下移动,而如果存在间距问题,其余框应向下移到下一行。或者,它应该进行调整,但文字不会起伏不定。

请提出建议。

    []Facebook []Twitter []Whatsapp []Instagram

    []Facebook []Twitter 
    []Whatsapp []Instagram

    []Fac []Twi []Wha []Ins
      ebo   tte   tsa   tag
      ok    r     app   ram
       <View style={{
          flexDirection:'row', backgroundColor:'#fff', marginBottom:8
       }}>
       <CheckBox
         style={{flex: 1, padding: 1}}
         onClick={()=>{
           this.setState({
             isChecked:!this.state.isChecked
           })
         }}
         isChecked={true}
         rightText={"Facebook"}
       />

       <CheckBox
         style={{flex: 1, padding: 1}}
         onClick={()=>{
           this.setState({
             isChecked:!this.state.isChecked
           })
         }}
         isChecked={false}
         rightText={"Whatsapp"}
       />

       <CheckBox
         style={{flex: 1, padding: 1}}
         onClick={()=>{
           this.setState({
             isChecked:!this.state.isChecked
           })
         }}
         isChecked={this.state.isChecked}
         rightText={"Instagram"}
       />  
     </View>

谢谢。

2 个答案:

答案 0 :(得分:0)

我相信您可以使用flexWrap进行布局,如here所述。为了使其能够在不同大小的视图上使用,重要的是指定Checkbox组件的固定宽度和View组件的固定高度。

答案 1 :(得分:0)

检查此-

   import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';
import CheckBox from 'react-native-check-box';

export default class App extends React.Component {
  constructor() {
    super();
    this.state = {
      isChecked: false,
    };
  }
  render() {
    return (
      <View style={{ flex: 1, justifyContent: 'center' }}>
        <View
          style={{
            width: '100%',
            justifyContent: 'center',
            alignItems: 'center',
          }}>
          <View
            style={{
              width: '100%',
              flexDirection: 'row',
              justifyContent: 'space-between',
              alignItems: 'center',
            }}>
            <CheckBox
              style={{ width: '50%', padding: 1 }}
              rightTextStyle={{ marginLeft: 0, paddingLeft: 0 }}
              onClick={() => {
                this.setState({
                  isChecked: !this.state.isChecked,
                });
              }}
              isChecked={true}
              rightText={'Facebook'}
            />

            <CheckBox
              style={{ width: '50%', padding: 1 }}
              rightTextStyle={{ marginLeft: 0, paddingLeft: 0 }}
              onClick={() => {
                this.setState({
                  isChecked: !this.state.isChecked,
                });
              }}
              isChecked={false}
              rightText={'Whatsapp'}
            />
          </View>
          <View
            style={{
              width: '100%',
              flexDirection: 'row',
              justifyContent: 'space-between',
              alignItems: 'center',
            }}>
            <CheckBox
              style={{ width: '50%', padding: 1 }}
              rightTextStyle={{ marginLeft: 0, paddingLeft: 0 }}
              onClick={() => {
                this.setState({
                  isChecked: !this.state.isChecked,
                });
              }}
              isChecked={this.state.isChecked}
              rightText={'Instagram'}
            />

            <CheckBox
              style={{
                width: '50%',
                padding: 1,
              }}
              rightTextStyle={{ marginLeft: 0, paddingLeft: 0 }}
              onClick={() => {
                this.setState({
                  isChecked: !this.state.isChecked,
                });
              }}
              isChecked={this.state.isChecked}
              rightText={'Twitter'}
            />
          </View>
        </View>
      </View>
    );
  }
}