2017-03-23 4 views
0

Ich möchte blättern, wenn die Listenansicht berührt wird und verschwinden soll, wenn sie nicht berührt wird, unabhängig von der Anzahl der Elemente in einer Listenansicht.Scroll nur bei Berührung anzeigen Listview

Dies ist, was meine aktuelle Snippet

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ListView 
     android:id="@+id/list_profile" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:divider="#40ffffff" 
     android:dividerHeight="1dp" 
     android:fastScrollEnabled="true" 
     android:scrollbarStyle="insideOverlay"/> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="#B1FFFFFF" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:paddingBottom="18dp" 
     android:paddingLeft="35dp" 
     android:paddingRight="35dp" 
     android:paddingTop="18dp"> 

     <com.bleexample2.CustomView.MyEditText 
      android:id="@+id/edit_search" 
      android:layout_width="0dp" 
      android:layout_height="40dp" 
      android:layout_weight="1" 
      android:background="@drawable/bg_edit_text" 
      android:hint="성함을 입력해주세요" 
      android:lines="1" /> 

     <ImageButton 
      android:id="@+id/btn_search" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="20dp" 
      android:background="?attr/selectableItemBackgroundBorderless" 
      android:scaleType="centerInside" 
      android:src="@drawable/ic_search" /> 

     <ImageButton 
      android:id="@+id/btn_add_profile" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:background="?attr/selectableItemBackgroundBorderless" 
      android:scaleType="centerInside" 
      android:src="@drawable/ic_add" /> 
    </LinearLayout> 
</LinearLayout> 

Meine styles.xml wie folgt aussieht aussieht: entweder immer zeigen oder nicht zeigen

<!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:textColor">#c6c6c6</item> 
     <item name="android:editTextColor">@color/editTextTextColor</item> 

     <item name="android:fastScrollTrackDrawable">@drawable/fast_scrollbar_track</item> 
     <item name="android:fastScrollThumbDrawable">@drawable/ic_thumb</item> 

    </style> 

    <style name="AppTheme.CustomFastScrollBar" parent="AppTheme" > 
     <item name="android:fastScrollThumbDrawable">@drawable/scroll_bar_vertical_thumb</item> 
     <item name="android:fastScrollTrackDrawable">@drawable/scrollbar_vetical</item> 
     <item name="android:fadeScrollbars">false</item> 
    </style> 

Mit dem fastScrollAlwaysVisible ich es nur kann eingestellt. Wie kann ich erreichen, was ich will, was nur angezeigt wird, wenn die Listenansicht berührt wird?

+0

einfach entfernen das 'fastScrollAlwaysVisible' Attribut. Das Standardverhalten besteht darin, den Schnellwechsler automatisch zu verbergen, wenn Sie die 'ListView' nicht berühren. –

+0

Ich möchte das Verhalten auch wenn es ein einzelnes Element in der Liste gibt. Immer wenn ich den Bildschirm berühre, sollte die Rolle erscheinen und wenn ich sie nicht berühre, sollte sie sich verstecken oder verblassen. –

+0

Oh, ich verstehe was du meinst. Ähm, warum? Das heißt, warum möchten Sie dem Benutzer einen visuellen Hinweis geben, dass die "ListView" scrollbar ist, wenn dies nicht der Fall ist? –

Antwort

0

In Ihrem Thema machen die folgende Überschreibung:

<style name="Theme.App" parent="android:Theme.Light"> 
    <item name="android:fadeScrollbars">true</item> 
</style> 

Sehen Sie hier die erste Antwort:

Autohide scrollbars when not scrolling in a ListView

Hinweis: Verblassende Scrollbar erscheint nur, wenn Sie viele Einzelteile (mehr als eine volle haben Bildschirm). Die Alternative wäre, das Gegenteil zu tun -> haben Scrollbar immer sichtbar (How to always show scrollbar)

Die letzte mögliche Lösung eine benutzerdefinierte Listenansicht (von Listview erweitern) zu schaffen wäre und Zugriff irgendwie den Mechanismus der Scrollbar

+0

Funktioniert nicht. Ist dies nur der Fall, wenn in der Liste viele Einträge für den Bildlauf vorhanden sind? Ich möchte dieses Verhalten, auch wenn ich ein einzelnes Element in der Liste habe. –

+0

Siehe meine letzte Bearbeitung (letzter Satz der Antwort) – ramden

+0

Versucht scheint nicht zu funktionieren. Ich habe immer noch einen Listenpunkt. Aber ich habe mehr Codedetails hinzugefügt. Schätzen Sie Ihre Bemühungen zu helfen –

Verwandte Themen