2016-05-23 2 views
2

я встречаю некоторые проблемы при использовании Реагировать ListView туземца, странное поведение, установлен Роу BackgroundColor будет выполнять другой результат между iPhone6 ​​и iPhone6plusРеагировать Native: Странное поведение BackgroundColor в ListView работает в iphone6Plus

Мой код в Render() функция

render: function(){ 
    return (
    <View> 
     <ListView 
     scrollEnabled={false} 
     contentContainerStyle={styles.list} 
     dataSource={dataSource.cloneWithRows(values)} 
     initialListSize={values.length} 
     pageSize={3} 
     scrollRenderAheadDistance={500} 
     renderRow={this._renderRow} 
     /> 
    </View> 
); 
}, 

стили:

var styles = StyleSheet.create({ 
list: { 
    flexDirection: 'row', 
    flexWrap: 'wrap', 
}, 
row: { 
    backgroundColor:'white', 
    width:w.width/3, 
    height: w.width/3, 
    borderWidth: 0.5, 
    borderColor: '#f3f3f3', 
    alignItems: 'center', 
}}); 

работает в iPhone6, это нормально! enter image description here

но работает в iPhone6Plus enter image description here

+0

В ваших стилей вы используете 'w.width' что' w'? Размеры экрана различаются между 6 и 6Plus. – rogchap

ответ

7

Вы should't установить borderWidth как число с плавающей запятой с iPhone6Plus.

Попробуйте заменить borderWidth: 0.5 на borderWidth: 1.

Что касается того, почему, извините, я не знаю принцип глубокого.

Я просто знаю, PixelRatio.get() === 3 в iPhone6Plus, вы должны установить ширину как число, как

width * PixelRatio.get() = [an integer]

Смежные вопросы