我使用createMaterialTopTabNavigator创建了一个TopTabNavigator。此选项卡导航器有两页,每页内部都有几个TextInput字段。两个标签使用相同的组件,但在Android中其行为不同。当在TextInput焦点之后弹出键盘时,屏幕在第一个选项卡中向上移动,但是在第二个选项卡中,屏幕保持静止,并且键盘隐藏了TextInput。我已经将AndroidManifest.xml中的活动标记更改为android:windowSoftInputMode="adjustPan"
,但是此功能不适用于第二个选项卡。
这是简化的代码示例:
const Test = props => {
return (
<View style={{ flex: 1}}>
<TextInput placeholder="test 1" />
<TextInput placeholder="test 2" />
<TextInput placeholder="test 1" />
<TextInput placeholder="test 2" />
<TextInput placeholder="test 1" />
<TextInput placeholder="test 2" />
<TextInput placeholder="test 1" />
<TextInput placeholder="test 2" />
<TextInput placeholder="test 1" />
<TextInput placeholder="test 2" />
<TextInput placeholder="test 1333" />
</View>
);
};
const TopTabNavigator = createMaterialTopTabNavigator(
{
Tab1: { screen: Test },
Tab2: { screen: Test }
}
);
export default createAppContainer(TopTabNavigator);