2016-06-14 12 views
5

Ich habe folgendes Layout:ScrollView nicht schleudern. Scrollen langsam

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="?android:attr/actionBarSize" 
    android:fillViewport="true"> 

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

     <LinearLayout 
      android:id="@+id/datatransfer_measure_list_layout_no_data" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/datatransfer_measure_list_textview_no_data" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="20dp" 
       android:layout_marginEnd="40dp" 
       android:layout_marginStart="40dp" 
       android:layout_marginTop="20dp" 
       android:gravity="center" 
       android:padding="5dp" 
       android:text="@string/measure_data_empty" 
       android:textColor="@color/textcolorprimary" 
       android:textSize="18sp" /> 

      <View 
       android:layout_width="match_parent" 
       android:layout_height="1dp" 
       android:layout_gravity="center" 
       android:layout_marginBottom="20dp" 
       android:layout_marginEnd="20dp" 
       android:layout_marginStart="20dp" 
       android:background="@android:color/darker_gray" 
       android:importantForAccessibility="no" /> 
     </LinearLayout> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/datatransfer_measure_list_row_parent" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="15dp" 
      android:clipToPadding="false" 
      android:importantForAccessibility="no" 
      android:paddingBottom="5dp" 
      android:textColor="@color/textcolorprimary" /> 

     <Button 
      android:id="@+id/datatransfer_measure_list_button_send" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginBottom="10dp" 
      android:layout_marginEnd="40dp" 
      android:layout_marginStart="40dp" 
      android:background="@drawable/custom_button_ok" 
      android:gravity="center" 
      android:padding="10dp" 
      android:text="@string/common_save" 
      android:textColor="@drawable/custom_button_positive_text_color" 
      android:textSize="20sp" /> 

     <Button 
      android:id="@+id/datatransfer_measure_list_button_reset" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginBottom="20dp" 
      android:layout_marginEnd="40dp" 
      android:layout_marginStart="40dp" 
      android:background="@drawable/custom_button_cancel" 
      android:gravity="center" 
      android:padding="10dp" 
      android:text="@string/common_cancel" 
      android:textColor="@drawable/custom_button_negative_text_color" 
      android:textSize="20sp" /> 
    </LinearLayout> 
</ScrollView> 

Ich habe im Grunde drei Teile dieses Layout. Zuerst ein Layout, das nur eine Textansicht enthält, um anzuzeigen, dass keine Daten gesetzt sind. Es wird unsichtbar, wenn Daten vorhanden sind.

Der zweite Teil ist mein recyclerview, das nur angezeigt wird, wenn einige Daten festgelegt sind.

Der letzte Teil sind zwei Tasten. Mein Problem mit diesem Layout? Das Scrollen ist sehr langsam. Ich meine nicht, dass es sich um etwas handelt oder ähnliches. Ich kann nur einen kleinen Teil scrollen. Es ist nicht wie meine anderen scrollviews, wo ich die Ansicht schleudern kann, so dass es automatisch scrollt. Ich habe keine Ahnung, was mit diesem Layout anders ist und warum die Scrollview hier anders funktioniert als in meinen anderen Layouts. Gibt es etwas, das den Scrollview-Fling oder so etwas blockiert?

Antwort

13

Ihre Recyclerview kollidiert mit ScrollView das ist warum Scroll ist nicht glatt.

Deaktivieren Sie das Scrollen von Recyclerview.

RecyclerView recyclerView = (RecyclerView)findViewById(R.id.datatransfer_measure_list_row_parent); 
recyclerView.setNestedScrollingEnabled(false) 
+1

Das ist es. Vielen Dank! – Mulgard

Verwandte Themen