最小化Android上的应用后,React原生Scrollview / flex布局行为不一致

时间:2016-12-05 10:14:43

标签: react-native android-softkeyboard react-native-android react-native-scrollview react-native-flexbox

我迈出了反应本土的第一步,试图了解软键盘的布局。

我通过rect-native init创建了一个新的react项目,并编写了以下组件:

<ScrollView style={{flex: 1}} contentContainerStyle={{flex: 1, borderColor: 'green', borderWidth: 10}}>
  <TextInput/>
  <View style={{flex: 1, borderColor: 'blue', borderWidth: 10}} />
</ScrollView>

结果看起来像预期的那样,当我触摸输入字段时,键盘覆盖了我的视图。 但是,如果我通过按方形/概览按钮最小化应用程序,然后再次选择应用程序,视图将调整它的高度,以便键盘不会覆盖视图。

到目前为止我的发现是: - 这只发生在Android

  • 仅当存在scrollView时才会发生这种情况

  • 在Android清单中使用android:windowSoftInputMode似乎不会影响问题。

  • 我尝试过反应原生:0.39.0 /反应:15.4.1和反应原生:0.33.0 /反应:~15.3.0并且它存在于

  • 然而,它在rnplay(0.33)中无法再现:https://rnplay.org/apps/kr-OQw

  • 我尝试了sony experia z5compact(android 6.0.1),nexus 5x和samsung galaxy s6(android 6.0.1),并且它已经存在。

我认为最小化后的大小调整是一个错误,或者我在这里遗漏了什么?这个问题有解决方法吗?

Recording of issue (sorry for the quality and unfortunate looping

1 个答案:

答案 0 :(得分:3)

默认的android:windowSoftInputMode是adjustUnspecified,会导致此问题。

如果你设置android:windowSoftInputMode:&#34; adjustResize&#34>你可以让屏幕一直调整大小。 (根据docs,这是理想的方式)。

您也可以按照我为react-native打开的bug