Макет: У меня есть EditText и 2 RecyclerViews внутри NestedScrollView, которые не видны (видимость = пропала)
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
//... toolbar
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.core.widget.NestedScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:backgroundTint="@android:color/transparent"
android:gravity="top"
android:inputType="textMultiLine|textCapSentences"
android:padding="@dimen/activity_margin"
android:singleLine="false" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_items"
android:padding="@dimen/activity_margin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scrollbars="vertical"
android:visibility="gone" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_Labels"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:visibility="gone" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_gravity="bottom"
android:layout_marginBottom="?actionBarSize" />
<com.google.android.material.bottomnavigation.BottomNavigationView
//...
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Проблема: КогдаЯ ввожу больше текста, чем высоту экрана, EditText прокручивается вниз, где находится курсор.Но когда я пытаюсь прокрутить вверх, ничего не происходит. Вот запись экрана, которую я сделал.
Невозможно прокрутить:
- после ввода / вставки длинного текста в первый раз.
Можно прокрутить:
- после повторного открытия действия с уже введенным текстом
- после закрытия клавиатуры
- после закрытия клавиатуры и ее повторного открытия
В результате поиска похожих проблем:
...
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.editText) {
v.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
}
return false;
}
});
Это решение не 't work:
- Вопросы касаются ScrollViews, а не NestedScrollViews.И NestedScrollView - это одно из предложенных решений (которое я уже использую)
- Когда я добавляю приведенный выше код, EditText становится прокручиваемым, но только когда отображается клавиатура.Если это не так, прокрутка невозможна - попытка прокрутки приводит к выделению текста.
- Прокрутка (с открытой клавиатурой) перемещает курсор.
Пожалуйста, дайте мне знатьесли вам нужна дополнительная информация или я что-то пропустил.Спасибо!