2016-02-28 6 views
5

Ich habe ein Layout (wie von Android Studio generiert), wo ich ein RelativeLayout zum AppBarLayout hinzugefügt habe. Der Code ist unten, und es sieht wie folgt aus:CoordinatorLayout verwenden, um RelativeLayout beim Scrollen eines RecyclerView zu verstecken/anzuzeigen

enter image description here

Wo lese ich stecke: Was ich erreichen will, wenn die Recyclerview nach unten scrollen möchte ich, dass die grüne relativ Layout (die die id ‚Control‘ hat) scrollt heraus mit ihm, und wenn ich nach oben scrolle, sollte es scrollen (nicht nur auf der Oberseite, sondern an irgendeiner Stelle scrollen ich in der Liste)

Die Symbolleiste oben sollte bleiben, wo es ist.

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

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     /> 

    <RelativeLayout 
     android:id="@+id/controlContainer" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:background="@android:color/holo_green_dark" 
     app:layout_scrollFlags="scroll|enterAlways"></RelativeLayout> 

</android.support.design.widget.AppBarLayout> 


<FrameLayout 
    android:id="@+id/frameLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <include layout="@layout/venue_list" /> 
</FrameLayout> 

Ich dachte, dass app:layout_scrollFlags="scroll|enterAlways" in der Ansicht verwenden, die mit app:layout_behavior="@string/appbar_scrolling_view_behavior" kombinierten Scroll weg sollte das erreichen sollte, aber es tut nichts. alternativ, wenn ich diese felder zu der toolbar selbst hinzufügen beide blättern weg - was ist nicht was ich will, ich will die toolbar immer fixiert bleiben.

wäre schön, wenn mir hier jemand in die richtige Richtung zeigen könnte? (I hoffte, dass es möglich wäre, mit Koordinator Layout verwenden und nicht Hacking einige Layout Manipulation mit onscroll Zuhörer?)

+0

Hast du irgendeine Lösung gefunden? Ich habe genau das gleiche Problem ... thx – Blunderer

+0

leider habe ich keine akzeptable Lösung gefunden – stamanuel

Antwort

0

Versuchen Sie dies in Ihrer Symbolleiste Code:

app:layout_collapseMode="pin" 
app:layout_scrollFlags="scroll|enterAlways" 

ich diesen Link hilfreich: Scrolling Toolbar

+1

ich spielte mit diesen Werten herum, aber wenn ich tun, was Sie vorgeschlagen haben, dann scrollen die Symbolleiste und das relative Layout weg. aber ich möchte, dass die Symbolleiste fest bleibt und nur das relative Layout zum Scrollen :( – stamanuel

Verwandte Themen