2017-05-19 4 views
0

添付画像に似た何かをする便利な方法はありますか? ボタングループを1つの選択肢にする必要があり、クリックするとフォーカスが当てられます。ボタングループをラジオボタンのように見える

enter image description here

+0

ただTouchableOpacityで表示を取り、その上にユーザーのクリックは、デザインを設定しても値が、私はパッケージを試してみました –

+0

@Danを述べるためにすることを設定した場合:反応-ネイティブ放射性私はちょうど添付画像のようにグリッドビューよりも置くことができません – KimHau

答えて

0

私はあなたに簡単な答えを与えるつもりです、それは意図した結果のようには見えませんが、それはCSSの微調整のカップルとなります。

Optionのコンポーネントを作成し、optionsのリストと選択したオプションを返す関数を受け入れるコンポーネントを作成します。

<Option 
    options={['A', 'B', 'C', 'D']} 
    onChange={(option) => { 
    console.log(option); 
    }} 
/> 

今すぐあなたのOption部品の内側に、あなたはこのコードは、今厄介であるので

class Option extends Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     activeOption: this.props.options[0], 
    }; 
    } 
    updateActiveOption = (activeOption) => { 
    this.setState({ 
     activeOption, 
    }); 
    }; 
    render() { 
    return (
     <View 
     style={{ 
      justifyContent: 'center', 
      flexDirection: 'row', 
      flexWrap: 'wrap', 
      marginTop: 100, 
      marginBottom: 100, 
     }} 
     > 
     {this.props.options.map((option, index) => (
      <TouchableOpacity 
      onPress={() => { 
       this.props.onChange(option); 
       this.updateActiveOption(option); 
      }} 
      > 
      <Text 
       style={{ 
       width: 150, 
       borderWidth: 1, 
       height: 50, 
       color: this.state.activeOption === option ? 'red' : 'black', 
       }} 
      > 
       {option} 
      </Text> 
      </TouchableOpacity> 
     ))} 
     </View> 
    ); 
    } 
} 

のようなコンポーネントを作成することができますし、StyleSheetオブジェクトとそれをneatenことができます。ここで

はそれが今どのように見えるかです: enter image description here

+0

どのようにA)三角形、B)スクエアC)サークル、D)のような2番目の要素を追加しますか? –

関連する問題