mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
optimize updateRootLayoutSpecs to not call setContraints if they did not change
Summary: This diff avoids calling mBinding.setConstraints when the measurespecs haven't changed Reviewed By: shergin Differential Revision: D14142305 fbshipit-source-id: 6770c97dcf0fb23c605a90fb6c3311d2fb771d11
This commit is contained in:
committed by
Facebook Github Bot
parent
1aa279d78b
commit
8928358108
@@ -114,6 +114,8 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
||||
private long mCommitStartTime = 0l;
|
||||
private long mLayoutTime = 0l;
|
||||
private long mFinishTransactionTime = 0l;
|
||||
private int mLastWidthMeasureSpec = 0;
|
||||
private int mLastHeightMeasureSpec = 0;
|
||||
|
||||
public FabricUIManager(
|
||||
ReactApplicationContext reactContext,
|
||||
@@ -363,13 +365,16 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
||||
public void updateRootLayoutSpecs(
|
||||
final int rootTag, final int widthMeasureSpec, final int heightMeasureSpec) {
|
||||
|
||||
mBinding.setConstraints(
|
||||
rootTag,
|
||||
getMinSize(widthMeasureSpec),
|
||||
getMaxSize(widthMeasureSpec),
|
||||
getMinSize(heightMeasureSpec),
|
||||
getMaxSize(heightMeasureSpec));
|
||||
|
||||
if (mLastWidthMeasureSpec != widthMeasureSpec || mLastHeightMeasureSpec != heightMeasureSpec) {
|
||||
mLastWidthMeasureSpec = widthMeasureSpec;
|
||||
mLastHeightMeasureSpec = heightMeasureSpec;
|
||||
mBinding.setConstraints(
|
||||
rootTag,
|
||||
getMinSize(widthMeasureSpec),
|
||||
getMaxSize(widthMeasureSpec),
|
||||
getMinSize(heightMeasureSpec),
|
||||
getMaxSize(heightMeasureSpec));
|
||||
}
|
||||
}
|
||||
|
||||
public void receiveEvent(int reactTag, String eventName, @Nullable WritableMap params) {
|
||||
|
||||
Reference in New Issue
Block a user