Android RecyclerView with CollapsingToolbarLayout smooth scroll issue

后端 未结 3 1441
温柔的废话
温柔的废话 2020-12-18 10:27

I want to use CollapsingToolbarLayoutwith RecyclerView, like Whatsapp.

Here is the captured video : https://sendvid.com/0oi2lx

相关标签:
3条回答
  • 2020-12-18 11:00

    I had problems with RecyclerView and CollapsingToolbarLayout as well (did not collapse at all). Try using the current version 23.4.+ of recyclerview, appcompat and design if you're not doing already.

    0 讨论(0)
  • 2020-12-18 11:03
    /**
    google solve this issue in 26 api level .I spent my whole day finally I found this answer. For Demo You create  one android studio Scrolling Activity and do following changes upgrade all repository to 26 version and you will see this scrolling smoothly effect.
    **/
    
    apply plugin: 'com.android.application'
    
    android {
        **compileSdkVersion 26
        buildToolsVersion "26.0.1"**
        defaultConfig {
            applicationId "com.example.sandeep.quantauser"
            minSdkVersion 19
            **targetSdkVersion 26**
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile files('libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar')
        compile files('libs/apache-jakarta-commons-net-1.4.1.jar')
        compile 'com.theartofdev.edmodo:android-image-cropper:2.4.+'
        compile 'com.github.bumptech.glide:glide:3.7.0'
        testCompile 'junit:junit:4.12'
        compile files('libs/itextpdf-5.4.0.jar')
        **compile "com.android.support:support-core-utils:26.0.2"
        compile 'com.android.support:design:26.0.2'
        compile 'com.android.support:appcompat-v7:26.0.2'
        compile 'com.android.support:cardview-v7:26.0.2'**
    }
    
    **allprojects {
        repositories {
            jcenter()
            maven {
                url "https://maven.google.com"
            }
        }
    }**
    
    0 讨论(0)
  • 2020-12-18 11:13

    Well i will explain how to solve issue , now my layout is super smooth ;

    Actually i dont know how its solved , but ;

    • i deleted all android:fitsSystemWindows="true" attributes.
    • then added app:layout_scrollFlags="scroll|enterAlways" attribute to CollapsingToolbarLayout , ImageView and Toolbar.
    • And moved all elements before my AppBarLayout in xml.

    My activity_profile.xml like :

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/apk/res-auto"
        android:id="@+id/profileCoordinatorLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
    <ProgressBar android:indeterminate="true"
        android:layout_width="50dp" android:layout_height="50dp"
        android:id="@+id/profile_activity_progress" 
        style="?android:attr/progressBarStyle"
        android:layout_gravity="center_vertical|center_horizontal"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:visibility="visible" />
    
    <ProgressBar android:indeterminate="true"
        android:layout_width="50dp" android:layout_height="50dp"
        android:id="@+id/profile_activity_progress_edit" 
        style="?android:attr/progressBarStyle"
        android:layout_gravity="center_vertical|center_horizontal"
        android:visibility="gone" />
    
    
    <include layout="@layout/content_profile_edit"/>
    
    
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/profile_recyclerview"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:layout_margin="@dimen/fab_margin"
        app:layout_anchor="@+id/profileactivity_appbar"
        app:layout_anchorGravity="bottom|right|end"
        app:backgroundTint="@color/ColorPrimary"
        android:src="@drawable/ic_create_white_48dp"/>
    
    <android.support.design.widget.AppBarLayout
        android:id="@+id/profileactivity_appbar"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:visibility="gone"
        android:theme="@style/AppTheme3.AppBarOverlay">
    
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/profileactivity_collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|enterAlways"
            app:statusBarScrim="@color/ColorPrimaryDark"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp">
    
            <ImageView
                android:id="@+id/profileactivity_fullimage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                app:layout_scrollFlags="scroll|enterAlways"
                app:layout_collapseMode="parallax" />
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_collapseMode="pin" />
    
        </android.support.design.widget.CollapsingToolbarLayout>
    
      </android.support.design.widget.AppBarLayout>
    
    </android.support.design.widget.CoordinatorLayout>
    

    And the content_profile_edit.xml like :

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        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:id="@+id/profile_edit_layout"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
    <android.support.v4.widget.NestedScrollView
        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:id="@+id/profile_fragment_nested"
        android:layout_height="match_parent"
        android:padding="10dp">
    
       <!-- other views -->
    
    </android.support.v4.widget.NestedScrollView>
    
    </RelativeLayout>
    
    0 讨论(0)
提交回复
热议问题