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