Ответ 1
Да, я решил проблему, изменив файл раскладки клавиатуры
Я добавил один фиктивный вид над кандидатом
лайк...
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/rlPredictionView" />
<RelativeLayout
android:id="@+id/rlPredictionView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/background_with_shadow_prediction_bar"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
...
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
чем переопределить этот метод в классе InputMethodService
@Override
public void onComputeInsets(InputMethodService.Insets outInsets) {
super.onComputeInsets(outInsets);
outInsets.visibleTopInsets = candidateView.getRelativeView().getTop();
outInsets.contentTopInsets = candidateView.getRelativeView().getTop();
}
фиктивное представление выше rlPredictionView
установит visibleTopInsets
клавиатуры, и в этой области всплывающее окно покажет
этот фиктивный вид позволит получить доступ к фоновому виду на ощупь, поэтому он не будет виден пользователю
Ссылка - fooobar.com/questions/16457717/...