【发布时间】:2020-07-02 09:44:03
【问题描述】:
在我真正的 Android 设备上,将屏幕推入堆栈导航后聚焦 TextInput 会使键盘闪烁一次(出现然后立即消失)。这不会在重新聚焦时发生,但如果我向后导航并使用其中包含 TextInputs 的任何屏幕重新推送导航,则会再次发生。
这不会发生:
- 在 Android 模拟器中
- 如果我使用
navigation.navigate('...')
下面的这些代码和我的设备上运行的完全一样,只是简单的代码,没有花哨的东西。
App.js
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import CategoryScreen from './screens/Category';
const MyStack = createStackNavigator();
export default function App() {
return (
<NavigationContainer>
<MyStack.Navigator>
<MyStack.Screen name="Category" component={CategoryScreen} />
</MyStack.Navigator>
</NavigationContainer>
);
}
Category.js
import React from 'react';
import { View, TextInput, Button } from 'react-native';
export default function Category({ navigation }) {
function goToAnotherCategory() {
navigation.push('Category');
}
return (
<View>
<Button onPress={goToAnotherCategory} title="Go to Another Category" />
<TextInput style={{ margin: 10, borderWidth: 1, backgroundColor: 'white' }} />
</View>
)
}
我正在使用这些版本:
"dependencies": {
...
"@react-navigation/native": "^5.5.1",
"@react-navigation/stack": "^5.5.1",
"react": "16.11.0",
"react-native": "0.62.2"
...
}
【问题讨论】:
-
也许试试
<TextInput autoFocus={true} ... />让它自动对焦? -
autoFocus 的作用就像我们点击输入一样,它会闪烁一次。
标签: javascript android react-native