CollapsingToolbarLayout funktioniert nicht (kollabiert) beim Scrollen

Ich versuche, eine CollapsingToolbarLayout und darunter eine Listenansicht zu erstellen, wenn die Listenansicht gescrollt wird, sollte die Symbolleiste zusammenbrechen, aber ihre Funktion nicht funktioniert, wenn die Symbolleiste gescrollt wird, kollabiert nicht.

Dieses Tutorial verwendet: http://android-developers.blogspot.in/2015_05_01_archive.html

  • Wie bekomme ich den aktuellen Y-Offset eines ScrollView
  • Android View-Objekt Wiederverwendung - verhindern, dass alte Größe angezeigt wird, wenn View wieder angezeigt wird
  • Unterschied zwischen gemeinsamer Präferenz und sqlite
  • Hex-Transparenz in Farben
  • Klasse java.util.Map hat generische Typ Parameter, verwenden Sie bitte GenericTypeIndicator stattdessen
  • Android Linear Layout - Wie halten Sie Element am unteren Blick?
  • Hinweis: Das FrameLayout enthält die Listenansicht

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:scrollbars="vertical"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="192dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbara" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> 

    Der Framelayout-Code:

     <RelativeLayout 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" tools:context="ranjithnair02.com.supporttest.BlankFragment"> <ListView android:id="@+id/rcyv" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="10dp" android:layout_marginRight="10dp" android:src="@android:drawable/ic_search_category_default" app:borderWidth="0dp" app:elevation="5dp" app:rippleColor="@color/wallet_highlighted_text_holo_light" /> </RelativeLayout> 

    Bildbeschreibung hier eingeben

  • Android-Fehler: java.lang.IllegalStateException: versuchen, einen bereits geschlossenen Cursor anzufordern
  • Kann Videos nicht streamen
  • InstrumentationTestRunner: Was bedeutet Android: functionTest erreichen?
  • Kein Dagger2 erzeugte Dateien für JUnit-Tests
  • Wie funktioniert setOffscreenPageLimit () die ViewPager-Leistung, indem sie mehr Offscreen-Fragmente beibehält?
  • Unit Testing mit Firebase
  • 4 Solutions collect form web for “CollapsingToolbarLayout funktioniert nicht (kollabiert) beim Scrollen”

    Sie sollten RecyclerView anstelle von ListView verwenden

    Hinweis: Vergessen Sie nicht, RecyclerView in der Gradle-Datei zu aktualisieren.

      compile 'com.android.support:recyclerview-v7:22.2.0' 

    Ich habe ein Beispiel mit RecyclerView statt. Der Quellcode könnte hier gefunden werden: https://github.com/jiahaoliuliu/MaterialDesignSample/tree/collapsingToolbars

    Es gibt ein paar Dinge, die Sie berücksichtigen sollten und die Post sagt nicht.

    1. Verwenden Sie CoordinatorLayout als Hauptlayout

    2. Verwenden Sie ein Thema ohne ActionBar und legen Sie stattdessen die Symbolleiste als actionBar fest. Sie können es tun, indem Sie ein spezielles Thema für die Aktivität wie folgt:

       <!-- Indigo without actionbar when toolbar is used --> <style name="IndigoWithoutActionBar" parent="Indigo"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

      Und in der Datei "AndroidManifest.xml" folge folgendes:

       <activity android:name=".CollapsingToolbarActivity" android:label="@string/app_name" android:theme="@style/IndigoWithoutActionBar" > </activity> 

      Sobald dies geschehen ist, legen Sie es auf den Java-Code:

       // Actionbar final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    Hier ist ein funktionaler XML-Code, den ich verwende.

     <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <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"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:fitsSystemWindows="true" app:layout_collapseMode="parallax" /> <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> <android.support.v7.widget.RecyclerView android:id="@+id/simpleRecyclerView" android:layout_height="match_parent" android:layout_width="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 

    Wenn das nicht genug für dich ist, kannst du dem Code von Chris Banes hier folgen: https://github.com/chrisbanes/cheesesquare

    Das Problem ist das RelativeLayout . Versuchen Sie, das FrameLayout durch das ListView und dann das FloatingButton ersetzen. Alles in einem CoordinatorLayout natürlich eingehüllt.

     <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.