J'ai besoin de créer une interface comme Google Kiosque qui est une sorte de ViewPager (défilement horizontal) sur un en-tête réduit (défilement vertical). L'une de mes exigences est d'utiliser la nouvelle bibliothèque de support de conception présentée au Google IO 2015. ( http://android-developers.blogspot.ca/2015/05/android-design-support-library.html )
Sur la base de l'exemple créé par Chris Banes ( https://github.com/chrisbanes/cheesesquare ), j'ai atteint le point où je suis capable de faire le comportement de réduction mais avec un LinearLayout de base (sans défilement horizontal).
J'ai essayé de remplacer LinearLayout par un ViewPager et j'ai eu un écran vide. J'ai joué avec: la largeur, le poids et toutes sortes de groupes de vues mais .... toujours un écran vide. Il semble que ViewPager et NestedScrollView ne s'aiment pas.
J'ai essayé une solution de contournement en utilisant un HorizontalScrollView: cela fonctionne mais je perds l'avantage de la fonctionnalité PagerTitleStrip et la mise au point sur un seul panneau (je peux arrêter horizontalement entre 2 panneaux).
Maintenant je n'ai plus d'idées, si quelqu'un peut m'amener à une solution ...
Merci
Voici mon dernier fichier de mise en page:
<?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.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="@dimen/header_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include
layout="@layout/part_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/activity_main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/activity_main_nestedscrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v4.view.ViewPager
android:id="@+id/activity_main_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFA0"/>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
ViewPager
intérieur NestedScrollView
comme seules mises en page - cela semblait fonctionner correctement. J'ai également pu DrawerLayout
réussir un . Peut-être y a-t-il un autre aspect de votre code qui empêche la fonctionnalité souhaitée. Vous souhaitez partager davantage votre source?
ViewPager
. Je suis capable de faire défiler les vues de haut en bas, ainsi que de faire défiler la ViewPager
gauche / droite.
ViewPager
intérieurLinearLayout
? Juste curieux de savoir si cela rendrait leViewPager
correctement.