2016-04-05 3 views
1

Ich habe eine ScrollView, die einige Bildansichten hat. Das Scrollen ist jedoch sehr langsam und ich verstehe nicht, was der Grund für die schlechte Leistung ist. Gibt es etwas zu tun, um das Scrollen zu beschleunigen? oder was kann dieses Problem verursachen?Android Slow Scrolling mit der ScrollView

`

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

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

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

       <ImageView /> 

     <ImageView /> 

     <ImageView /> 

     <ImageView /> 

     <ImageView /> 

       <ImageView /> 

      </RelativeLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:gravity="center" 
       android:orientation="vertical"> 

       <Button /> 

      </LinearLayout> 
     </RelativeLayout> 
    </ScrollView> 
</RelativeLayout>` 
+0

Neben dem unnötig verschachtelten 'RelativeLayout' scheint es nichts zu geben, was ein Problem verursachen könnte. Mit "langsam" meinst du, es scrollt langsam oder meinst du abgehackt und vielleicht Probleme beim Rendern beim Scrollen? Wie groß sind die Bilder, die Sie laden? Wenn Sie große Bilder laden, versuchen Sie vielleicht, ihre Dateigröße zu reduzieren? – Charlemagne

Antwort

0

ich in Englisch nicht sehr fließend bin, aber ich werde versuchen, es Ihnen zu erklären!

Sie müssen nur versuchen, Sie zu ändern Scrollposition wie diese

**<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

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

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <ImageView /> 

    <ImageView /> 

    <ImageView /> 

    <ImageView /> 

    <ImageView /> 

      <ImageView /> 

     </RelativeLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:gravity="center" 
      android:orientation="vertical"> 

      <Button /> 

     </LinearLayout> 
    </RelativeLayout> 
</ScrollView> 

+0

Danke, ich werde es versuchen. – Vera

+0

Leider hat es nicht geholfen. – Vera

0

Je mehr Kind Ansichten innerhalb Kind sieht man die besteuernd auf das System haben, verstehe ich nicht, warum würde Sie verwenden eine RelativeLayout in einem Elternteil RelativeLayout. Sie haben nur ein Snipet geschrieben, aber ich sehe, dass Sie viele untergeordnete Layouts haben.

Sie finden mehr here

es so aussehen sollte, oder ersetzen LinearLayout mit RelativeLayout.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     /> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="100dp" /> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="100dp" /> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="100dp" /> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="100dp" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="100dp" /> 
</LinearLayout> 

+0

Auch wenn ich alle RelativeLayouts entferne, und ich habe nur die ScrollView und in einem RelativeLayout ist es immer noch sehr langsam. – Vera

+0

Warum haben Sie sie leer 'ImageView' Tags – Mihai

+0

Ich habe den Code innerhalb des ImageView nur für das Beispiel entfernt. – Vera

1

Das Problem war die Größe der Bilder. Wenn Sie also Probleme mit der Leistung von ScrollView und mehreren ImageViews haben, achten Sie auf die Größe Ihrer Bilder! In meinem Fall habe ich sie auf ca. 20KB - 50KB jedes Bild.