@liu31241
text置底,文字不就是置底了吗?除非你text和文字大小高度不一致
<View style={{flexDirection: 'row',alignItems: 'flex-end'}}>
<Text>6.80</Text>
<Text>%</Text>
</View>
@liu31241
text置底,文字不就是置底了吗?除非你text和文字大小高度不一致
<View style={{flexDirection: 'row',alignItems: 'flex-end'}}>
<Text>6.80</Text>
<Text>%</Text>
</View>
可以试试,让父容器的子view都置底
flexDirection: 'row',
alignItems: 'flex-end',
原ListView的数据是arr,你移除arr中数据使用splice,所以新ListView的数据还是之前的arr。cloneWithRows会把新旧数据进行比较,知道哪些是需要更新的。由于你cloneWithRows方法只传了一个参数,则会按照数组的顺序进行两两比较。所以rowHasChanged中比较的一直是同样的两个元素,无论rowHasChanged怎么写,还是没有解决问题。
为什么最后一条不见了呢,应该是数目减1了,导致ListView认为最后一条不存在,则移除了。
你试试,this.arr.concat().splice(rowID, 1)。//创建新数组,再进行移除元素。不建议直接更改原数组
ps:这只是我的个人理解,没有试验过,不一定正确。
@rainmeterLotus
之前的代码是没有移除Text的,只是让它移到屏幕外,即隐藏了。
如果要移除Text,而不是隐藏的话,在失焦和获焦时,更新isFocus状态即可
{this.state.isFocus?<Text/>:null}
添加属性:
pointerEvents: 'none'
样式:
top: SCREEN_HEIGHT,
bottom: -SCREEN_HEIGHT,
opacity: 0,
参考Navigator中对Scene的隐藏
https://github.com/facebook/react-native/blob/master/Libraries/CustomComponents/Navigator/Navigator.js