У меня есть RecyclerView
внутри ViewPager
, который занимает только нижнюю половину экрана, и я хочу, чтобы весь экран прокручивался, если RecyclerView
s получил событие вертикальной прокрутки ,Android: прокрутка проблем с recyclerview внутри viewpager
иерархии UI в двух словах:
CoordinatorLayout
--- AppBarLayout
--- Toolbar
--- Bunch of static LinearLayouts, occupy most of screen
--- TabLayout
--- ViewPager
--- Fragments with RecyclerView
Что я имею:
В моем понимании, RecyclerView
это память эффективным и подгоняет себя в любое пространство, которое доступно в экран. В моем приложении у меня есть ViewPager
хостинг нескольких вкладок, каждый из которых имеет RecyclerView
, чтобы отображать разные вещи.
Не могли бы вы дать мне некоторые идеи о том, что я могу сделать, чтобы сделать весь экран? Я предполагаю, что лучший снимок - добавить CollapsingToolbarLayout
с параллаксом в статический контент в середине экрана. Я даже пытался это сделать, но пользовательский интерфейс был полностью сломан. Это сложно, так как я хочу, чтобы контент в середине экрана прокручивался, а не панели инструментов сверху. У меня не было много удачи с NestedScrollView
либо, по-видимому, его совместимость с ViewPager
и CoordinatorLayout
не прямо вперед ..
Основная деятельность План:
<android.support.design.widget.CoordinatorLayout
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="match_parent"
>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_contributor"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:focusableInTouchMode="true">
<android.support.v7.widget.SearchView
android:id="@+id/searchview_contributor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:icon="@drawable/ic_search_white_24dp"
app:defaultQueryHint="Bla bla"
app:iconifiedByDefault="false"/>
<ImageButton
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_person_outline_black_24dp"/>
</android.support.v7.widget.Toolbar>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="La Bla"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="Bla Bla"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
>
<!-- Bunch of stuff, but irrelevant -->
<android.support.design.widget.TabLayout
android:id="@+id/tablayout_profile"
android:layout_width="match_parent"
android:layout_height="40dp"/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_profile"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
фрагмент внутри ViewPager:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview_photos"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
Заранее благодарим!
Обновление: Ответы, которые я получил здесь (за что я благодарен), пришли слишком поздно. Если кто-нибудь знает, какой правильный ответ, пожалуйста, дайте мне знать!