2017-01-23 3 views
0

Ich habe versucht, jemanden mit der gleichen Frage zu finden, wusste aber nicht wirklich, wonach gesucht werden soll. Wenn jemand anders eine ähnliche Frage stellt, lass es mich wissen!Deaktivieren der Symbolleiste Scrollen beim Drücken

Ich habe die Symbolleiste aus der Design-Bibliothek implementiert, wie folgt:

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <include layout="@layout/toolbar" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/mainTabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:tabGravity="fill" /> 

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

und die Layout-Symbolleiste:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/mainToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    app:layout_scrollFlags="scroll|enterAlways" 
    app:popupTheme="@style/AppTheme.PopupOverlay" /> 

Die AppBarLayout ist ein direktes Kind zum CoordinatorLayout. Unterhalb der AppBar habe ich eine RecyclerView, die den AppBar beim Scrollen korrekt zusammenklappen lässt.

Ich kann jedoch direkt auf die AppBar drücken und dann meinen Finger nach oben bewegen und auf diese Weise kollabiert die Symbolleiste, obwohl mein RecyclerView komplett leer ist. Ich kann es erneut erweitern, indem ich erneut auf der Symbolleiste nach unten scrolle. Dieses Verhalten tritt nicht beim Scrollen auf, wo der RecyclerView ist.

Ich hoffe, dass mein Problem verständlich ist. Ich verwende Version 25.1 der Support-Bibliothek. Danke!

Edit: Ich habe versucht, die Lösungen unten. Habe nichts geändert. Unten habe ich ein Video hinzugefügt, um zu zeigen, was mein Problem ist. Es geht also wirklich um die Situation, wenn der Bildschirm nicht voll ist (also keine Elemente aus dem RecyclerView vom Bildschirm verschwinden): Wenn das der Fall ist, möchte ich nicht, dass die Toolbar überhaupt verschwindet. Mit anderen Worten: Verstecken Sie die Symbolleiste nur, wenn Elemente von RecyclerView vom Bildschirm verschwinden.

https://drive.google.com/file/d/0Bzrw-IuZ9USuMURVVkRfb3dkRTQ/view?usp=sharing

Wenn mehr Code von meiner Seite benötigt wird, nur wissen lassen.

+0

Ich glaube, Sie für fling Verhalten suchen. Google it finden Sie Readymade-Code –

+0

Ich glaube nicht, dass das mein Problem ist. Wenn Sie sich das Video ansehen (erster Teil): Der RecyclerView verschwindet nicht vom Bildschirm, aber die Toolbar bleibt beim Scrollen weiterhin verborgen. Ich will das nicht. @SouravGanguly – Crosswind

Antwort

0

Versuchen Sie, diese Das gesamte Projekt an diesem Ort ist: https://github.com/slidenerd/Android-Design-Support-Library-Demo

Der Code unten funktioniert für mich (Das Git Projekt gehört zu slidenered Thanx zu ihm.):

<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="slidenerd.vivz.navigationviewdemo.FourthActivity"> 

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/root_coordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="192dp" 
       android:scaleType="centerCrop" 
       android:src="@drawable/rsz_bg_cover" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/app_bar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:layout_collapseMode="pin" /> 

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

     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tab_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/colorAccent" 
       app:layout_collapseMode="pin" 
       app:tabIndicatorColor="@color/colorPrimary" 
       app:tabSelectedTextColor="@android:color/white" 
       app:tabTextColor="#EEE" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/view_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 


    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|right" 
     android:layout_margin="16dp" 
     android:src="@drawable/ic_add_black" 
     app:borderWidth="0dp" 
     app:fabSize="mini" /> 
</android.support.design.widget.CoordinatorLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/navigation_drawer" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:menu="@menu/menu_drawer" /> 

+0

Hat mein Problem nicht gelöst. Ich habe meine Frage bearbeitet vielleicht hilft das – Crosswind

0

Wenn Sie den toolbar fixieren möchten, wenn appbar gescrollt wird

versuchen Sie dies:

<android.support.design.widget.CoordinatorLayout 
    ... 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      ... 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:titleEnabled="false"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_gravity="top" 
       android:background="?attr/colorPrimary" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:scrollbars="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

setzen Sie Ihre toolbar unter einen CollapsingToolbarLayout und app:titleEnabled="false"

Durch sie auf false gesetzt, werden Sie das gewünschte Verhalten bekommen. Der Titel bleibt oben auf dem Bildschirm fixiert.

Sie können es tun programetically auch:

CollapsingToolbarLayout.setTitleEnabled(false); 
+0

@Crosswind hat es funktioniert? – rafsanahmad007

+0

hat nicht funktioniert.Ich habe meine Frage bearbeitet und ein Video hinzugefügt. Vielleicht wurde ich missverstanden? Danke für Ihre Hilfe! – Crosswind

Verwandte Themen