Как прокручивать всю активность при прокрутке tablayout android - PullRequest
0 голосов
/ 17 июня 2020

Как мне прокрутить всю мою активность при прокрутке моего tablayout .?

Например, когда я прокручиваю свой tabLayout - все действие должно прокручиваться ... а не только часть окна просмотра tablayout ..

Действие должно прокручиваться только при прокрутке макета вкладки.

Это то, что я хочу ... (Обратите внимание, как прокручивается все действие ... при прокрутке макета вкладки )

image1

Это то, что у меня есть .... (Обратите внимание, как прокручивается только часть фрагмента tablayout при прокрутке tablayout)

image2

Это то, что я пробовал ... как я читал ...

1. Добавить ScrollView в действие макета, содержащее макет табуляции

2 Добавить NestedScrollView в макет фрагмента.

photo_activity. xml - действие, содержащее макет табуляции и окно просмотра

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

       <com.google.android.material.tabs.TabLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/yearTabLayout"
            app:tabIndicatorColor="@android:color/black">

            <com.google.android.material.tabs.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/top"
                android:text="@string/top"/>

            <com.google.android.material.tabs.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/recent"
                android:text="@string/recent"/>

        </com.google.android.material.tabs.TabLayout>

        <androidx.viewpager2.widget.ViewPager2
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/yearTabLayout"
            android:id="@+id/year_view_pager" />

    </RelativeLayout>

 </ScrollView>  

fragment_photos. xml - Фрагмент текущей выбранной вкладки в табле yout.

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<data class="TopPhotosActivityBinding" />

   <androidx.core.widget.NestedScrollView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fillViewport="true">

     <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:id="@+id/progressBar"/>

        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/swipeRefreshTopPhotos">


            <androidx.recyclerview.widget.RecyclerView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/topPhotosRecyclerView"
                tools:listitem="@layout/top_photos_year">
            </androidx.recyclerview.widget.RecyclerView>

        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

    </RelativeLayout>

   </androidx.core.widget.NestedScrollView>
</layout>

1 Ответ

1 голос
/ 17 июня 2020

Вы можете сделать что-то подобное, используя CollapsingToolbarLayout

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="com.google.android.material.appbar.AppBarLayout$Behavior"
    xmlns:app="http://schemas.android.com/apk/res-auto">

   <com.google.android.material.appbar.AppBarLayout
       android:layout_width="match_parent"
       android:layout_height="300dp"
      >

       <com.google.android.material.appbar.CollapsingToolbarLayout
           android:id="@+id/collapsingToolbar"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:fitsSystemWindows="true"
           app:contentScrim="?attr/colorPrimary"
           app:expandedTitleMarginEnd="56dp"
           app:expandedTitleMarginStart="40dp"
           app:layout_scrollFlags="scroll|exitUntilCollapsed"
           app:title="Hello MindOrks!"
           >

           <!-- Put your top content here -->

           <LinearLayout
               android:id="@+id/toolbarImage"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:fitsSystemWindows="true"
               android:scaleType="centerCrop"
               android:src="@drawable/ic_android_black_24dp"
               app:layout_collapseMode="pin" >

               <TextView
                   android:layout_width="match_parent"
                   android:gravity="center"
                   android:text="Sample Top Content"
                   android:layout_gravity="center"
                   android:textSize="25dp"
                   android:textColor="@color/white"
                   android:layout_height="wrap_content"/>

           </LinearLayout>


       </com.google.android.material.appbar.CollapsingToolbarLayout>

   </com.google.android.material.appbar.AppBarLayout>

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="wrap_content">


            <com.google.android.material.tabs.TabLayout
                android:layout_width="match_parent"
                android:fitsSystemWindows="true"
                android:layout_height="wrap_content"
                android:id="@+id/yearTabLayout"
                app:tabIndicatorColor="@android:color/black">

                <com.google.android.material.tabs.TabItem
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/top"
                    android:text="Top"/>

                <com.google.android.material.tabs.TabItem
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/recent"
                    android:text="Recent"/>

            </com.google.android.material.tabs.TabLayout>

            <androidx.viewpager2.widget.ViewPager2
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/yearTabLayout"
                android:id="@+id/year_view_pager" />

        </LinearLayout>

    </androidx.core.widget.NestedScrollView>


</androidx.coordinatorlayout.widget.CoordinatorLayout>

Это будет выглядеть примерно так:
enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...