2010-06-23 5 views
46

Quelqu'un sait-il de la documentation sur l'android: scrollbarStyle? J'aimerais voir des exemples de chacune des 4 valeurs avec des captures d'écran si possible. Je vois la différence entre dehors & types à l'intérieur, mais ce sont les Inset & Outset parts tout au sujet de? Je ne semble pas voir une différence entre insideOutset & insideInset par exemple, de même, je ne vois pas de différence entre outsideOutset & outsideOutset.android ListView scrollbarStyle

merci d'avance! Ben

Répondre

58

Aucune valeur ne correspond à outsideOutset et insideOutset. Possibles quatre valeurs sont insideOverlay, insideInset, outsideOverlay, outsideInset
la documentation est là à la suite de deux liens ...

http://developer.android.com/reference/android/view/View.html#attr_android:scrollbarStyle

http://developer.android.com/reference/android/view/View.html#SCROLLBARS_INSIDE_INSET

Je ne comprenais pas la documentation appropriée. Donc, prenant référence de la démo ApiDemos Scrollbar, j'ai essayé ceci. Mais j'ai trouvé qu'il n'y a pas de différence dans insideInset et outsideOverlay.
Ces deux valeurs sont diff, soit il doit avoir à la fois comme Encart ou Overlay

scrollbar3.xml mise à jour est

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

<ScrollView 
    android:id="@+id/view1" 
    android:layout_width="100dip" 
    android:layout_height="120dip" 
    android:padding="8dip" 
    android:scrollbarStyle="insideOverlay" 
    android:background="@android:color/white" 
    android:overScrollMode="never"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#ffffff" 
     android:background="@android:color/darker_gray" 
     android:text="@string/scroll_text" /> 
</ScrollView> 

<ScrollView 
    android:id="@+id/view2" 
    android:layout_width="100dip" 
    android:layout_height="120dip" 
    android:padding="8dip" 
    android:scrollbarStyle="insideInset" 
    android:background="@android:color/white" 
    android:overScrollMode="never"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#ffffff" 
     android:background="@android:color/darker_gray" 
     android:text="@string/scroll_text" /> 
</ScrollView> 

<ScrollView 
    android:id="@+id/view3" 
    android:layout_width="100dip" 
    android:layout_height="120dip" 
    android:padding="8dip" 
    android:scrollbarStyle="outsideOverlay" 
    android:background="@android:color/white" 
    android:overScrollMode="never"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#ffffff" 
     android:background="@android:color/darker_gray" 
     android:text="@string/scroll_text" /> 
</ScrollView> 

<ScrollView 
    android:id="@+id/view4" 
    android:layout_width="100dip" 
    android:layout_height="120dip" 
    android:padding="8dip" 
    android:scrollbarStyle="outsideInset" 
    android:background="@android:color/white" 
    android:overScrollMode="never"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#ffffff" 
     android:background="@android:color/darker_gray" 
     android:text="@string/scroll_text" /> 
</ScrollView></LinearLayout> 

J'espère que quelqu'un verra cela et clarifier ...

Screenshot for the View Scrollbar styles

172

Voici un exemple un peu plus détaillé. J'ai mis en place des couleurs de fond pour rendre plus évident ce qui se passe ici.

Android scrollBarStyle settings visualized

d'abord, les couleurs:

  • noir - marges
  • blanc - rembourrage
  • gris - le contenu du scrollview
  • vert - la barre de défilement si il prend son propre espace (je l'ai explicitement ajouté comme scrollbarTrackVertical pour les deux "inset" exemple es)

Définissons deux sections:

  • « zone de contenu » - les choses à afficher dans la vue de défilement
  • « padding » - l'espace autour du contenu de la vue de défilement

Réfléchissons sur les deux parties du scrollBarStyle séparément:

  • inside - la barre de défilement apparaît l'intérieur la zone de contenu (les enveloppes de rembourrage autour du contenu et de la barre de défilement)

  • outside - la barre de défilement apparaît en dehors la zone de contenu

  • overlay - la barre de défilement recouvre le bord droit de la section dans laquelle il se trouve

  • inset - la barre de défilement pousse la section dans laquelle il se trouve t, en prenant son propre espace

La mise en page XML apparaît ci-dessous

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000" 
    > 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:scrollbarStyle="insideOverlay" 
     android:background="#fff" 
     android:fadeScrollbars="false" 
     android:layout_margin="8dp" 
     android:padding="16dp" > 
      <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#aaa" > 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
       <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideOverlay"/> 
      </LinearLayout> 
    </ScrollView> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:scrollbarStyle="insideInset" 
     android:background="#fff" 
     android:scrollbarTrackVertical="@drawable/green_block" 
     android:fadeScrollbars="false" 
     android:layout_margin="8dp" 
     android:padding="16dp" > 

     <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#aaa" > 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="insideInset" /> 
     </LinearLayout> 

    </ScrollView> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:scrollbarStyle="outsideOverlay" 
     android:background="#fff" 
     android:fadeScrollbars="false" 
     android:layout_margin="8dp" 
     android:padding="16dp" > 

     <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#aaa" > 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideOverlay" /> 
     </LinearLayout> 

    </ScrollView> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:background="#fff" 
     android:layout_weight="1" 
     android:scrollbarStyle="outsideInset" 
      android:scrollbarTrackVertical="@drawable/green_block" 
     android:fadeScrollbars="false" 
     android:layout_margin="8dp" 
     android:padding="16dp" > 

     <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#aaa" > 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
      <TextView android:textSize="32sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="outsideInset" /> 
     </LinearLayout> 
    </ScrollView> 
</LinearLayout>