mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-03-26 07:04:05 +08:00
Perf improvements to RecyclerViewBackedScrollView.
Differential Revision: D2641500 fb-gh-sync-id: 7ec6e2863bccebc98f75f586c0f17d509808d46b
This commit is contained in:
committed by
facebook-github-bot-8
parent
14b36b472e
commit
5695ebdcf4
@@ -9,6 +9,8 @@ var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||
var React = require('React');
|
||||
var ScrollResponder = require('ScrollResponder');
|
||||
var ScrollView = require('ScrollView');
|
||||
var View = require('View');
|
||||
var StyleSheet = require('StyleSheet');
|
||||
|
||||
var requireNativeComponent = require('requireNativeComponent');
|
||||
|
||||
@@ -65,10 +67,6 @@ var RecyclerViewBackedScrollView = React.createClass({
|
||||
return this;
|
||||
},
|
||||
|
||||
getInnerViewNode: function(): any {
|
||||
return React.findNodeHandle(this.refs[INNERVIEW]);
|
||||
},
|
||||
|
||||
setNativeProps: function(props: Object) {
|
||||
this.refs[INNERVIEW].setNativeProps(props);
|
||||
},
|
||||
@@ -93,11 +91,35 @@ var RecyclerViewBackedScrollView = React.createClass({
|
||||
style: ([{flex: 1}, this.props.style]: ?Array<any>),
|
||||
ref: INNERVIEW,
|
||||
};
|
||||
|
||||
var wrappedChildren = React.Children.map(this.props.children, (child) => {
|
||||
if (!child) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<View
|
||||
collapsable={false}
|
||||
style={styles.absolute}>
|
||||
{child}
|
||||
</View>
|
||||
);
|
||||
});
|
||||
|
||||
return (
|
||||
<NativeAndroidRecyclerView {...props}/>
|
||||
<NativeAndroidRecyclerView {...props}>
|
||||
{wrappedChildren}
|
||||
</NativeAndroidRecyclerView>
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
var styles = StyleSheet.create({
|
||||
absolute: {
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
},
|
||||
});
|
||||
|
||||
var NativeAndroidRecyclerView = requireNativeComponent('AndroidRecyclerViewBackedScrollView', null);
|
||||
|
||||
Reference in New Issue
Block a user