Ich habe versucht, eine CollapsingToolbar mit einer RecyclerView zu implementieren, indem ich die kleine Menge an Anleitungen hier verwende: http://android-developers.blogspot.co.uk/2015/05/android-design-support-library.html und das Projekt hier: https://github.com/chrisbanes/cheesesquareund ich habe derzeit folgendes Layout:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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:theme="@style/Toolbar"
app:contentScrim="@color/primary"
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"
app:theme="@style/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/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom|right|end"
android:src="https://stackoverflow.com/questions/30546812/@drawable/ic_directions"
android:layout_margin="@dimen/fab_margin"
android:clickable="true"/>
</android.support.design.widget.CoordinatorLayout>
Die Quelle ist wie folgt:
setContentView(R.layout.activity_details_image);
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
loadImage();
CollapsingToolbarLayout collapsingToolbar =
(CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setTitle(formatName(getIntent().getStringExtra("name")));
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
ArrayList<DetailsAdapter.Detail> details = new ArrayList<DetailsAdapter.Detail>();
details.add(new DetailsAdapter.Detail("Main Facilities", "Children's Play Area, Ecotricity Electric Vehicle Charging Point, Lucky Coin, Multi Faith Room (southbound only), Showers", R.drawable.ic_moto));
details.add(new DetailsAdapter.Detail("Restaurants", "Eat & Drink Co., Burger King, Costa, West Cornwall Pasty Co. (northbound only), Greggs, Costa Express, Krispy Kreme", R.drawable.ic_moto));
details.add(new DetailsAdapter.Detail("Shops", "WHSmith, M&S Simply Food, Fone Bitz, Cotton Traders, Ladbrokes (southbound only)", R.drawable.ic_moto));
details.add(new DetailsAdapter.Detail("Motel", "Travelodge", R.drawable.ic_moto));
details.add(new DetailsAdapter.Detail("Forecourt", "BP (with: LPG), Costa Express, Air1 AdBlue", R.drawable.ic_moto));
DetailsAdapter mAdapter = new DetailsAdapter(this, details);
recyclerView.setAdapter(mAdapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
Ich habe es ohne die einklappbare Symbolleiste getestet und es läuft einwandfrei
Es scrollt jedoch nicht, selbst wenn die Liste länger als die sichtbaren Teile ist. Was habe ich falsch gemacht?
Ich habe versucht, Ihr Layout mit einem einfachen RecyclerView zu verwenden, es hat gut funktioniert. Das Problem könnte bei der Stückzahl liegen oder vielleicht bei der Umsetzung des Adapters?
– Rausch
31. Mai 2015 um 2:59 Uhr
Es funktioniert ohne die Toolbar, wie gesagt. Adapter und Zubehör sind in Ordnung. Könntest du dein Projekt hochladen?
– Kieron
31. Mai 2015 um 8:11 Uhr
Eigentlich habe ich zum Testen das Projekt Cheesesquare modifiziert, ich habe nur die NestedScrollingView in der Detailansicht durch die RecyclerView im Projekt ersetzt, es hat funktioniert.
– Rausch
31. Mai 2015 um 8:18 Uhr
Und die Antwort unten erklärt warum. Sie haben die aktualisierte build.gradle erhalten, ich habe meine nicht aktualisiert. Scheint von vielen übersehen zu werden.
– Kieron
31. Mai 2015 um 9:48 Uhr
Schön, dass es jetzt funktioniert! Mir ist bewusst, dass nicht alle Bildlaufansichten funktionieren, z. B. ListView. Das neuste Update muss hierfür relevante Änderungen enthalten.
– Rausch
31. Mai 2015 um 9:57 Uhr