У меня такой расклад:
<?xml version = "1.0" encoding = "utf-8"?>
<android.support.v4.widget.NestedScrollView
xmlns:android = "http://schemas.android.com/apk/res/android"
android:id = "@+id/left_col"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical">
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical">
<TextView
android:id = "@+id/textView1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" />
<android.support.v7.widget.RecyclerView
android:id = "@+id/recyclerView"
android:layout_width = "match_parent"
android:layout_height = "500dp"/>
<TextView
android:id = "@+id/textView2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
Высота recyclerView предопределена кодом и равна высоте экрана устройства. Идея в том, что пользователь не ощущает на экране 2 вертикальных прокрутки (то есть, чтобы он выглядел как 1 прокрутка).
Как сделать так, чтобы при textView1 плавно прокручивался контент до начала recyclerView, останавливался, а потом прокручивался, проходил внутри recyclerView?
Если я правильно понял, у вас есть несколько вариантов:
RecyclerView, замените NestedScrollView на другой тип ViewGroup, например LinearLayout.recyclerView.setNestedScrollingEnabled(false);.Кроме того, у вашего recyclerView не будет динамического размера экрана, потому что вы используете статическую высоту android:layout_height = "500dp".
Вы меня не поняли. Я хочу, чтобы содержимое прокручивалось до начала позиции RecycledViev и останавливалось. Весь последующий импульс был передан RecyclerViev, и он прокрутил элементы.
И я переопределяю высоту RecycleView по коду. Значение, указанное в макете, ничего не значит.
Хорошо, вы хотите прокручивать только внутри RecyclerView? Так что смените NestedScrollView , иначе на экране появятся две полосы прокрутки.
Я вам уже 2 раза объяснял, и вы не поняли. Пожалуйста, ответьте на вопрос. Как переопределить прокрутку? Для получения дополнительной информации я могу объяснить это только по-русски.
Я уже ответил на это, у вас есть два варианта, чтобы продолжить, прочитайте мой первый ответ еще раз.
Нет, вы ответили на совершенно другой вопрос. Здесь возник вопрос: как отменить прокрутку? Ожидается ответ, содержащий обработку MotionEvent.
Аналогичное поведение будет, если я установлю
android:layout_height = "wrap_content"на RecycleView, но в этом случае будет невозможно использовать recycle и получить OutOfMemory на больших данных.