17

benötigt Verwendung:Prevent CollapsingToolbarLayout Kollaps, wenn nicht

compile 'com.android.support:design:23.0.0' 
compile 'com.android.support:appcompat-v7:23.0.0' 
compile 'com.android.support:cardview-v7:23.0.0' 
compile 'com.android.support:recyclerview-v7:23.0.0' 

Mit dem Projekt Cheesesquare aktualisiert.

In das Detail von Käse, entferne ich 2 Karten (um nur eine zu haben). Gibt es eine Möglichkeit, das Zusammenklappen der Symbolleiste, die ein Leerzeichen anzeigen, zu verhindern?

enter image description here

+1

ich nicht wirklich eine Lösung gefunden haben, aber ich verwende jetzt https://github.com/ henrytao-me/smooth-app-bar-layout und ich habe dieses problem nicht (da die implementation anders ist) – stankocken

Antwort

18

Um ein solches Verhalten in Cheesesquare Beispiel implementieren nur android:layout_height param des NestedScrollView zu wrap_content ändern. Es verhindert das Scrollen nach Inhalt, wenn es klein genug ist, um auf den Bildschirm zu passen.

Und um das Scrollen durch CollapsingToolbarLayout zu verhindern, sollten Sie den Wert layout_scrollFlags programmatisch auf den Wert AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP setzen.

Here beschrieben, wie Sie dies tun können.

+0

Oder in xml füge '' app: layout_scrollFlags = "snap" '' zum CollapsingToolbarLayout Tag hinzu – tieorange

+0

dann geschachtelte scrollview ist gut, aber die Symbolleiste zum Minimieren ist weiterhin scrollbar – Sheychan

+0

layout_scrollFlags funktioniert nicht. Verwenden Sie diese Problemumgehung, um das Scrollen von CollapsingToolbarLayout zu deaktivieren. https://Stackoverflow.com/a/40750707/3094065 ist es wahr und funktioniert wirklich!) – maXp

1

In xml Ich habe Eigenschaft verwendet

app:layout_scrollFlags="snap" in <android.support.design.widget.CollapsingToolbarLayout

und nach der Tätigkeit

toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
toolbar.setTitle(null); 
toolbar.setCollapsible(false); 

Es arbeitet jetzt.

1

Hier ist mein Arbeitscode, zunächst collapes die Bar:

_appbar.setExpanded (false);

AppBarLayout _appbar = (AppBarLayout) findViewById(R.id.appbar); 
    _appbar.setExpanded(false); 

hier ist das Layout xml

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/detail_backdrop_height" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:expandedTitleMarginStart="48dp" 
     app:expandedTitleMarginEnd="64dp"> 



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

      app:layout_collapseMode="pin" /> 





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

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

die Referenz: AppBarLayout.setExpanded(boolean)

Verwandte Themen