React-Native iOS准确的活动输入位置

时间:2018-04-08 07:47:37

标签: ios react-native react-native-ios

我试图使用一些现有的iOS键盘解决方案避免,但现有的解决方案似乎都没有与我的一些相当复杂的视图正常工作,我现在必须实现我自己的系统。到目前为止,我已经设法提出了以下非常好的方法:

    _keyboardDidShow(e) {
        const keyboardHeight = e.endCoordinates.height;
        const windowHeight = Dimensions.get('window').height;
        const keyboardTop = windowHeight - keyboardHeight;
        const margin = 10;

        const currentlyFocusedField = TextInput.State.currentlyFocusedField();
        UIManager.measureInWindow(currentlyFocusedField, (x, y, width, height) => {
            const fieldBottom = y + height;
            const offset = fieldBottom - keyboardTop + 10;

            if (offset > 0) {
                this.setState({ offsetY: -1 * offset, offsettingKeyboard: true });
            }
        });
    }

我应该提一下,这些输入都在ScrollViews中,它们本身就是其他一些东西。

问题是当为一个尚未在其视图中向上滚动的TextInput调用处理程序时,获得正确的“fieldBottom”位置而不添加高度,而字段的实际位置需要增加高度在已滚动的视图中。

我无法判断这是一个错误还是我错过了什么。有没有办法可以检查输入的父项是否已滚动?

0 个答案:

没有答案