2015-04-07 21 views
38

मैं प्रतिक्रिया मूल में एक सूचीदृश्य को लागू करने की कोशिश कर रहा हूं। सबकुछ ठीक था जब मैं घटक Accounts पर फोन कर रहा था, लेकिन जब से मैं इसे नेविगेटर आईओएस में डालता हूं, तो सूचीदृश्य पहले आइटम से पहले कुछ जगह छोड़ रहा है: here देखें और जब मैं here स्क्रॉल करता हूं।प्रतिक्रिया मूल स्थानदृश्य स्थान छोड़ने

index.ios.js

var RemoteX1 = React.createClass({ 

    render: function() { 
    return (
     <NavigatorIOS 
     style={styles.container} 
     initialRoute={{ 
      title: 'Accounts', 
      component: Accounts, 
     }}/> 
    ); 
    } 
}); 

var styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    }, 
}); 

accounts.js

var people = [ 
    { 
    title: "Papa", 
    favouriteChannels: [] 
    }, 
    { 
    title: "Maman", 
    favouriteChannels: [] 
    }, 
    { 
    title: "Kids", 
    favouriteChannels: [] 
    }, 
    { 
    title: "Invité", 
    favouriteChannels: [] 
    } 
]; 

var Accounts = React.createClass({ 
    getInitialState: function() { 
    var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
    return { 
     dataSource: ds.cloneWithRows(people), 
    } 
    }, 
    renderRow: function(person) { 
    return (
     <TouchableHighlight onPress={this.onPressRow}> 
     <Text style={styles.account}>{person.title}</Text> 
     </TouchableHighlight> 
    ); 
    }, 
    render: function() { 
    return (
     <View style={styles.container}> 
     <View style={styles.panel}> 
      <Text style={styles.icon}>&#xF0C6;</Text> 
      <Text style={styles.welcome}>BIENVENUE</Text> 
      <ListView 
      dataSource={this.state.dataSource} 
      renderRow={this.renderRow} 
      style={styles.listView} /> 
     </View> 
     </View> 
    ); 
    } 
}); 

var styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    alignItems: 'center', 
    justifyContent: 'center' 
    }, 
    panel: { 
    backgroundColor: '#67F072', 
    alignItems: 'center', 
    justifyContent: 'center', 
    paddingLeft: 50, 
    paddingRight: 50, 
    }, 
    icon: { 
    color: '#67B7F0', 
    fontFamily: 'CanalDemiRomainG7', 
    fontSize: 40 
    }, 
    welcome: { 
    color: '#67B7F0', 
    fontFamily: 'CanalDemiRomainG7' 
    }, 
    account: { 
    color: '#000000', 
    height: 30, 
    alignSelf: 'center', 
    fontFamily: 'CanalDemiRomainG7' 
    }, 
}) 

किसी को क्या हो रहा है के किसी भी विचार है करता है:

यहाँ मेरी कोड है? धन्यवाद

+0

के साथ तंग आ गया है आपको कम परीक्षण मामले के साथ अपना जवाब संपादित करने की आवश्यकता है। इस समय वहां बहुत सारी जानकारी है जो हमें समस्या से बाहर काम करने से रोकती है। इसे कम से कम उस तक काट दें जो समस्या को पुन: उत्पन्न करता है। –

+4

मुझे नहीं लगता कि मैं इसके लिए -1 के लायक हूं ... वैसे मैं वास्तव में सूचीदृश्य और नेविगेटर आईओएस का सभी कोड डालता हूं क्योंकि मुझे नहीं पता कि बग कहां आ रहा है। क्या यह 'सीएसएस' या 'जेएस' कोड है? मैं कुछ कोड – ilansas

उत्तर

87

ठीक है, तो मुझे जवाब मिला, मैं इसे किसी भी मुद्दे पर चलाने वाले किसी भी व्यक्ति के लिए यहां पोस्ट करता हूं।

गिथब here पर एक मुद्दा पोस्ट किया गया है। ListView पैरामीटर automaticallyAdjustContentInsets={false} में जोड़ना आवश्यक है। समस्या हल हो गई।

30

यह तब होता है जब आपके पास TabBarIOS के साथ स्क्रॉलव्यू या ListView है। यदि आप automaticallyAdjustContentInsets={false}

डालते हैं तो आप शीर्ष पर अतिरिक्त स्थान निकाल सकते हैं, हालांकि, स्क्रॉलव्यू पूरी तरह से नहीं दिखाया जाएगा क्योंकि इसका निचला हिस्सा TabBarIOS के नीचे छिपा होगा। इसे ठीक करने के लिए contentInset={{bottom:49}} अपनी आवश्यकताओं के अनुसार ऊंचाई समायोजित करें।

यहाँ कोड है: आप के अंदर संपत्ति निर्धारित करने की आवश्यकता

<ListView 
    contentInset={{bottom:49}} 
    automaticallyAdjustContentInsets={false} 
> 
+1

को हटाने का प्रयास करूंगा, मेरे पास 'TabBarIOS' के बिना अंतर भी था –

8

आप android..contentInset में इस लक्ष्य को हासिल करने के लिए प्रयास कर रहे हैं आईओएस विशिष्ट है, एंड्रॉयड पर इस का प्रबंधन करने के <ListView contentContainerStyle={styles.contentContainer}> </ListView>

फिर अपने stylesheets.create में

var styles = StyleSheet.create({ 
    contentContainer: { 
    paddingBottom: 100 
    } 

* मुझे लगता है कि सेशन एक iOS समाधान के लिए पूछ रहा है, सिर्फ लोगों पारित करने के लिए और अगर सेशन फैसले एंड्रॉयड समाधान जोड़ने डेस वह आईओएस

संबंधित मुद्दे