React-native模式对话框隐藏自定义键盘

Lau*_*t S 5 android modal-dialog react-native

我们在react-native中使用自定义键盘工作正常(这只是android,这里不需要iOS),但是当与模态对话框一起使用时会出现问题.

如下面的屏幕截图所示,键盘弹出模式下方,无法输入任何值.我们已经为模态组件尝试了几个选项,包括默认的react-native Modal组件,但它们都给出了相同的结果.

等类似问题的评论让我觉得它可能有与模态对话框的设置和前面的国旗做在这里:

通常,您希望在当前输入法的顶部显示对话框,因为它没有理由接受文本.您可以通过使用以下代码设置WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM窗口标志(假设您的Dialog采用默认的输入焦点)来执行此操作:

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
     WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Run Code Online (Sandbox Code Playgroud)

但是当我们使用标准的Android键盘时,它会按预期显示在模态之上,所以这似乎不是问题所在.键盘实际上是作为一个单独的RN应用程序启动的:

rootView.startReactApplication(
    ((ReactApplication) activity.getApplication()).getReactNativeHost().getReactInstanceManager(),
            "CustomKeyboard",
            bundle);

final float scale = activity.getResources().getDisplayMetrics().density;
RelativeLayout.LayoutParams lParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Math.round(216*scale));
lParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
layout.addView(rootView, lParams);
Run Code Online (Sandbox Code Playgroud)

然后在将文本输入聚焦时显示:

activity.addContentView(keyboard, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
Run Code Online (Sandbox Code Playgroud)

我不知道Android的,但我怀疑我需要通过一些额外参数一样,这些创造的内容视图,以确保它能够超越我的情态动词的时候.我是在正确的轨道上吗?关于这些参数可能是什么的任何暗示?

编辑:这是相关代码的一部分(我认为).react-native-modal这个,但使用react-native的默认模态组件会得到相同的结果:

import Modal from 'react-native-modal';
...(parent component code)...
render() {
    ...
    <Modal isVisible={this.state.isShowingDialog}>
    ...(modal box content, all inside a <View>)...
    </Modal>
    ...
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Muh*_*aan 0

如果您的活动具有此属性,则将其删除:

<activity 
    android:windowSoftInputMode="adjustResize">
Run Code Online (Sandbox Code Playgroud)