2

'uile Whatsapp gibi kullanmak istiyorum. İşte Android RecyclerView with CollapsingToolbarLayout düzgün kaydırma sorunu

yakalanan video: https://sendvid.com/0oi2lxx5

Ben yukarı Yani tamam, ama aşağı kaydırma zaman pürüzsüz değil. RecyclerView ile düzgünce kaydırmak istiyorum. Yani burada

benim profile_activity.xml:

<?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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 
    <android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:id="@+id/profile_recyclerview" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_below="@+id/profileactivity_appbar" /> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/profileactivity_appbar" 
     android:layout_width="match_parent" 
     android:layout_height="400dp" 
     android:fitsSystemWindows="true" 
     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|exitUntilCollapsed" 
      android:fitsSystemWindows="true" 
      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" 
       android:fitsSystemWindows="true" 
       app:layout_collapseMode="parallax" 
       app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_collapseMode="pin" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 

    </android.support.design.widget.AppBarLayout> 




    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     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.CoordinatorLayout> 

kullanıyorum:

compile 'com.android.support:appcompat-v7:23.4.0' 
compile 'com.android.support:support-v4:23.4.0' 
compile 'com.android.support:recyclerview-v7:23.4.0' 
compile 'com.android.support:design:23.4.0' 

Bunu nasıl düzeltebilirim?

+0

Damla ImageView'ın 'app: layout_scrollFlags' ve bu sorunu çözer bakın. Bence bu bayraklar o kadar kolay bir şekilde görüntüyü kaydırmayı deniyor, ancak geridönüşüm yoluyla bu şekilde kayda geçemiyorum diye app: layout_collapseMode ' – Sevle

+0

ile çelişiyor. Anladığım kadarıyla –

cevap

9

Sorunu nasıl çözeceğimi açıklayacağım, şimdi düzenim süper düzgün;

Aslında nasıl çözüldüğünü bilmiyorum;

  • i tüm android:fitsSystemWindows="true" özelliklerini silindi.
  • daha sonra CollapsingToolbarLayout, ImageView ve Toolbar'a app:layout_scrollFlags="scroll|enterAlways" özniteliğini ekledi.
  • Ve tüm öğeleri AppBarLayout'dan önce xml'de taşıdım.

Benim activity_profile.xml gibi:

<?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> 

Ve benzeri content_profile_edit.xml:

<?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

araç çubuğunu ve tablayout'u nasıl pinleyeceğimi –

+0

@BincyBaby Ben tam olarak anlayamıyorum ama kontrol edebilirsiniz [cheesesquare sürümleri] (https://github.com/chrisbanes/cheesesquare/releases) –

+0

Bu yöntem iyi çalışıyor, ancak araç çubuğu ve tablayout pin istedi bu işe yaramaz –

1

Ben de RecyclerView ve CollapsingToolbarLayout ile ilgili sorunlar yaşadım (hiç çökmedi). Zaten yapmıyorsanız, mevcut sürüm 23.4. + 'In geridönüşüm uygulamasını, uygulama tasarımını ve tasarımı kullanmayı deneyin.

+0

Anlıyorum problemim çöküyor değil. Görüntüyü, süper pürüzsüz görüntüye dokunarak kaydırdığımda izlerseniz.Ama geri döndürme görünümünde kaydırma yaparken görüntüyü daraltmak kadar düzgün değil. –

+0

API'lerin en son sürümünü denediniz mi? Düzeltilen bir hata olabilir. Düzenini denedim ve her şey iyi çalışıyor. – b00n12

+0

Tüm bunları 23.4.0 sürümüne güncelledim. Ama aynı sorun burada. –

1
/** 
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" 
     } 
    } 
}**