2016-11-15 60 views
1

我試圖創建一個使用柔性的兩列網格創建兩列。一列將用於顯示一個單詞或短語,第二列將用於翻譯第一列。這裏是一個鏈接:http://imgur.com/nZGo8pb給你一個我想要實現的視覺想法。試圖在反應母語

我無法並排拿到兩列側。我只能讓我的話出現在彼此之上。這是最好的嘗試。巨大的失敗。 http://imgur.com/a/ICApr

我的代碼是:

nent} from 'react'; 
import { Text, View,StyleSheet,Image,TextInput,ListView} from 'react-native'; 

class AddWords extends Component{ 

    state = {words:['iku','konkai','kaikan'], 
      word:'', 
      EnglishWords:['go','this time','next time']  
      } 

    renderList(tasks){ 
     return(
     tasks.map((task) =>{ 
     return(
      <View key={task} style={styles.item}> 
      <Text> 
      {task} 
      </Text> 
       <Text> 
      </Text> 
      </View> 
      ) 

     }) 

    ) 
    } 
    renderEnglishWords(english){ 
     return(
     english.map((english) =>{ 
     return(
      <View key={english} style={styles.item2}> 
      <Text> 
      {english} 
      </Text> 
       <Text> 
      </Text> 
      </View> 
      ) 

     }) 

    ) 
    } 
    addWord(){ 
     let words = this.state.words.concat([this.state.word]); 
     this.setState({words}) 


    } 
    render(){ 
     return(
     <View style={styles.container}> 
      <TextInput 
      style={styles.input} 
      onChangeText={(word) => { 
       this.setState({word}) 
      }} 
      onEndEditing={()=>this.addWord()} 
      /> 
     <View style={styles.wordContainer}>  
      {this.renderList(this.state.words)} 
      {this.renderEnglishWords(this.state.EnglishWords)} 
      <View style={styles.item2}> 

      </View> 
      </View> 
     </View> 

     ) 
    } 

} 

const styles = StyleSheet.create({ 
    container:{ 
     flex:1, 
     borderWidth:3, 
     borderColor:'green', 
     flexDirection:'column', 
     paddingTop:10 

    }, 
    wordContainer:{ 

    flexDirection: 'column', 
    borderColor:'blue', 
    borderWidth:2 


    }, 
    input:{ 
     height:60, 
     borderWidth:1, 
     borderRadius:5, 
     borderColor:'black', 
     textAlign:'center', 
     margin:10, 
     paddingTop:20, 
     paddingBottom:10 

    }, 
    item:{ 
    borderColor:'red', 
    borderWidth:2 


    }, 
    item2:{ 
    borderColor:'black', 
    borderWidth:2, 
    flexDirection:'column', 
    } 
}) 
export default AddWords; 

任何幫助將不勝感激。

謝謝。

回答

5

您需要使用下面的樣式來包裝另一個<View>兩個內部容器:

<View style={styles.container}> 
    <TextInput style={styles.input} 
      onChangeText={(word) => { 
      this.setState({word})}} 
      onEndEditing={()=>this.addWord()}/> 

    <View style={{flexDirection: 'row', flex: 1}}> 
    <View style={styles.wordContainer}> 
     ... 
    </View> 
    <View style={styles.item2}> 
     ... 
    </View> 
    </View> 
</View> 
0

這是因爲在styles.wordContainerflexDirection被設定爲「列」,它應被設置爲「行」。

檢查彎曲方向的例子進行this link