Android 当键盘以WindowsOFFINTPUT作为adjustNothing打开或关闭时,将EditText从下至上移动,反之亦然

Android 当键盘以WindowsOFFINTPUT作为adjustNothing打开或关闭时,将EditText从下至上移动,反之亦然,android,android-fragments,Android,Android Fragments,我有一个EditText作为搜索栏,放在片段的底部,我想在键盘处于打开状态时将该EditText移到顶部,在键盘关闭时移回底部。使用Keyboardlistener时,我可以这样做,但由于某些原因,我希望我的windowSoftInput为adjustNothing,而使用adjustNothing时,Keyboardlistener无法工作。是否有任何可能的方法可以在不改变输入模式的情况下实现这一点 KeyboardVisibilityEvent.setEventListener(Object

我有一个EditText作为搜索栏,放在片段的底部,我想在键盘处于打开状态时将该EditText移到顶部,在键盘关闭时移回底部。使用Keyboardlistener时,我可以这样做,但由于某些原因,我希望我的windowSoftInput为adjustNothing,而使用adjustNothing时,Keyboardlistener无法工作。是否有任何可能的方法可以在不改变输入模式的情况下实现这一点

KeyboardVisibilityEvent.setEventListener(Objects.requireNonNull(getActivity()), new KeyboardVisibilityEventListener() {
            @Override
            public void onVisibilityChanged(boolean isOpen) {
                moveSearchBar(isOpen);
            }
        });
private void moveSearchBar(boolean isOpen) {
        Transition changeBounds = new ChangeBounds();
        changeBounds.setDuration(1000);
        changeBounds.setInterpolator(new LinearInterpolator());
        TransitionManager.beginDelayedTransition(mDiscoverBinding.clDiscover,
                changeBounds);
        TransitionManager.beginDelayedTransition(mDiscoverBinding.clDiscover);
        ConstraintSet constraintSet = new ConstraintSet();
        constraintSet.clone(mDiscoverBinding.clDiscover);
        if(isOpen) {
            constraintSet.clear(R.id.et_search, ConstraintSet.BOTTOM);
            constraintSet.connect(R.id.et_search, ConstraintSet.TOP, R.id.cl_discover, ConstraintSet.TOP, getResources().getDimensionPixelSize(R.dimen.dp_16));
            constraintSet.connect(R.id.et_search, ConstraintSet.START, R.id.cl_discover, ConstraintSet.START, getResources().getDimensionPixelSize(R.dimen.dp_16));
            constraintSet.connect(R.id.et_search, ConstraintSet.END, R.id.cl_discover, ConstraintSet.END, getResources().getDimensionPixelSize(R.dimen.dp_16));
        } else {
            constraintSet.clear(R.id.et_search, ConstraintSet.TOP);
            constraintSet.connect(R.id.et_search, ConstraintSet.START, R.id.cl_discover, ConstraintSet.START, getResources().getDimensionPixelSize(R.dimen.dp_16));
            constraintSet.connect(R.id.et_search, ConstraintSet.END, R.id.cl_discover, ConstraintSet.END, getResources().getDimensionPixelSize(R.dimen.dp_16));
            constraintSet.connect(R.id.et_search, ConstraintSet.BOTTOM, R.id.cl_discover, ConstraintSet.BOTTOM, getResources().getDimensionPixelSize(R.dimen.dp_24));
        }
        constraintSet.applyTo(mDiscoverBinding.clDiscover);
    }

我可以使用上述代码移动搜索栏,但如果我将WindowsOfInputMethod更改为adjustNothing,则它将不起作用,出于某些原因,我需要将其作为adjustNothing使用。

您必须在清单中使用android:WindowsOfInputMode=“adjustResize”。

显示您的代码,我已经更新了它,请看一下。由于某些原因,我不得不将其用作adjustNothing,有没有可能不使用adjustNothing?