4

Android uygulamamda Koordinatör Düzenini kullanmaya çalışıyorum. Uygulama çubuğu düzeninde ve koordinatör düzeninde iç içe kaydırma görünümü var. İç içe geçmiş kaydırma görünümümde, animateLayoutChanges öğesinin doğru olduğu bir Doğrusal düzen var.Android: animateLayoutChanges CoordinatorLayout ile düzgün çalışmıyor

Sorunum, Doğrusal düzen yüksekliğinin yüksekliği öğelerin görünürlüğünü Görünür olarak ayarladığında arttığında, Doğrusal düzenin Appbar Düzeninin altına girmesidir. Sadece ekrana tıkladıktan veya kaydırdıktan sonra, uygun kaydırma efekti gerçekleşir.

Sorunu göstermek için basit bir uygulama oluşturdum. Aşağıda düzeni. gösteri düğmesini tıklayarak bu ise

<?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/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:animateLayoutChanges="true" 
    tools:context="testapp.test.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBar" 
     android:animateLayoutChanges="true" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:animateLayoutChanges="true" 
      app:layout_scrollFlags="scroll|enterAlways|snap" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

     </android.support.v7.widget.Toolbar> 

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

    <android.support.v4.widget.NestedScrollView 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:animateLayoutChanges="true"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Show" 
      android:id="@+id/test_Button"/> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hide" 
      android:id="@+id/test_Button2"/> 
     <TextView 
      android:id="@+id/test_tv" 
      android:layout_width="match_parent" 
      android:layout_height="300dp" 
      android:visibility="gone" 
      android:background="@color/colorAccent"/> 
     </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 

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

Ben TextView'un görünür yapıyorum. Sorunumu anlamak için lütfen resimlere bakın.

Resim 1- İlk Durum.

Resim 2- İşte sorun. Gösteri'yi tıklattım. Artık Doğrusal düzen, düzen değişikliklerini canlandırarak animasyon nedeniyle Uygulama Çubuğu Düzeni altında hareket etti. Gördüğünüz gibi, Göster düğmesi Uygulama Çubuğunun altından taşındı.

Resim 3- Ekrana dokunduğumda veya kaydırdığımda, kaydırma işlemi uygun hale gelir.

Lütfen

Yardım edin. Bunu günlerce düzeltmeye çalışıyorum. Teşekkürler.

Here is the problem. I have clicked Show. Now the Linear layout has moved under App Bar Layout due to animation. Now when I touch screen or scroll, the scrolling becomes proper.

cevap

5

Bu aynı sorunu yaşayan edildi

Initial State.

: true değeri animateLayoutChanges bir LinearLayout içeren bir NestedScrollView içerikli kaydırma sorunlarına neden oldu. Benim durumumda, içerik appBarLayout altında kayar.

Bu hata burada issue 180504 olarak belgelenmiştir. Görünüşe göre bu şu anda destek kitaplığı 23.2.0 olarak güncellenir, bu hile yapmalısınız anlamına gelir:

ext { 
    supportLibraryVersion = "23.2.0" 
} 

dependencies { 
    ... 

    // this is the primary dependency for coordinator layout 
    // but, of course, update all that depend on the support library 
    // note: the design library depends on the Support v4 and AppCompat Support Libraries 
    //  those will be included automatically when you add the Design library dependency 
    compile "com.android.support:design:$supportLibraryVersion" 

    ... 
} 
+0

Teşekkür ederiz. İşe yarıyor. –

+0

Bir çekicilik gibi çalışır. teşekkürler – tauri

İlgili konular