19

Bir CoordinatorLayout ve bir AppEndLoadout ve bir NestedScrollView ile bir düzenim var, NestedScrollView içinde birden fazla CardView var, her şey ben CardViews'ı tıklanabilir olacak şekilde ayarlayana kadar tamam bir CardView içinde kaydırma, kaydırma çalışmıyor.NestedScroll içindeki Clickable CardView kaydırma işlemini tetiklemiyor

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/main_content" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 
<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_height="256dp" 
    android:layout_width="match_parent" 
    app:contentScrim="?attr/colorPrimary" 
    android:fitsSystemWindows="true" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary"> 
     <ImageView 
      android:id="@+id/backdrop" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="centerCrop" 
      android:fitsSystemWindows="true" 
      app:layout_collapseMode="parallax"/> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_width="match_parent" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 
<android.support.v4.widget.NestedScrollView 
    android:id="@+id/nestedScroll" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    android:layout_gravity="fill_vertical"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
     <android.support.v7.widget.CardView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:cardCornerRadius="0dp" 
      app:cardUseCompatPadding="true"> 
      <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
       <View 
        android:layout_width="80dp" 
        android:layout_height="80dp" 
        android:background="@color/primary" /> 
       <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:paddingTop="4dp" 
        android:paddingLeft="7dp" 
        android:paddingRight="7dp" 
        android:paddingBottom="7dp"> 
        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:lines="1" 
         android:includeFontPadding="false" 
         android:text="Title1" 
         style="@android:style/TextAppearance.Medium" /> 
        <TextView 
         android:lines="2" 
         android:text="Description 1" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" /> 
       </LinearLayout> 
      </LinearLayout> 
     </android.support.v7.widget.CardView> 
     ... 
    </LinearLayout> 
</android.support.v4.widget.NestedScrollView> 

+3

Açık ödül +50 için üzücü, ama bu kesinlikle bir kopyasıdır http://stackoverflow.com/questions/31136740/scroll-doesnt-work-in-nestedscrollview-when-try-to-scroll- görüntüleme-tıklama-tıklama - lütuf kaldırmak ve çoğaltmak işaretleyin. Olduğu gibi başlığından o görünüyor olsa – Davidea

+2

Lilianne aynı durum, burada asıl sorun ben tıklanabilir olarak cardviews ayarladığınızda, daha sonra dokunma olayı Scrollview kadar kabarcık fark etmediği olduğunu düşünüyorum. Scrollview içinde fill_vertical düzen var ve bu benim için bazı sorunlar giderilmiştir, ancak gelmiyor.Fark tıklanabilir öğelere – Escobar5

+1

Belki haklısınız ile kaydırma düzeltmek ama muhtemelen elimizde hiçbir yayılmasında da kesişme dokunmatik olayı geçersiz kılmak gerekir doğru görerek çocuk görüşüne. – Davidea

cevap

7

konu scrollview içerikle dolu değilken gün ışığına gelince:

Bu benim düzenidir. Bence Android'de çok garip bir böcek.

'çözüm' ..

enter image description here

<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:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_height="256dp" 
     android:layout_width="match_parent" 
     app:contentScrim="?attr/colorPrimary" 
     android:fitsSystemWindows="true" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary"> 

      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:fitsSystemWindows="true" 
       app:layout_collapseMode="parallax"/> 

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

    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/nestedScroll" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_gravity="fill_vertical"> 

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

      <android.support.v7.widget.CardView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:cardCornerRadius="0dp" 
       app:cardUseCompatPadding="true" 
       android:foreground="?android:attr/selectableItemBackground" 
       android:clickable="true"> 

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

        <View 
         android:layout_width="80dp" 
         android:layout_height="80dp" 
         android:background="#cdcdcd" 
         android:clickable="true"/> 

        <LinearLayout 
         android:orientation="vertical" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:paddingTop="4dp" 
         android:paddingLeft="7dp" 
         android:paddingRight="7dp" 
         android:paddingBottom="7dp"> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:lines="1" 
          android:includeFontPadding="false" 
          android:text="Title1" 
          style="@android:style/TextAppearance.Medium"/> 

         <TextView 
          android:lines="2" 
          android:text="Description 1" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          /> 
        </LinearLayout> 
       </LinearLayout> 
      </android.support.v7.widget.CardView> 

      <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="1000dp" 
      android:orientation="vertical" 
      android:layout_margin="4dp" 
      android:background="#c1c1c1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20pt" 
       android:text="some content..."/> 
     </LinearLayout> 

     </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 
</android.support.design.widget.CoordinatorLayout> 
+0

Bu, kaydırma işlemini düzeltiyor ancak üst öğeler pencerenin ötesine kaydırıyor. –

+0

Evet. Sorunun kayma sorunuyla ilgili olduğunu sanırım .. Pencerenin ötesinde başka görünümler görünüyorsa, yapılandırmanızda başka hatalar var gibi görünüyor. –

+0

Bu gerçekten garip, sanırım bir android hatayı, çözümünüzü tamir ediyor gibi görünüyor, maalesef görüşlerin pencerenin ötesine geçmesini sağladığından, @FedorKazakov diyor. – Escobar5

0

ile ilgili sorunları önlemek için Not: CardView ekranın tam olarak oturduğunda sorun kartın kaydırma yapmasını tetiklemez. Kaydırma hala CollapsingToolbarLayout içindeki görünümlerden çalışır.

Çözümüm, CardView numaralı telefona android:layout_marginBottom="100dp" numaralı bağlantıyı eklemek, böylece alt kenarın ekran dışında kalması sağlandı.

İlgili konular