ViewPager dans un NestedScrollView

J'ai besoin de créer une interface comme Google Kiosque qui est une sorte de ViewPager (défilement horizontal) sur l'effondrement de l'en-tête (défilement vertical). Un de mes exigences consiste à utiliser la nouvelle Conception de la Bibliothèque de prise en charge présentées lors de la Google IO 2015.
(http://android-developers.blogspot.ca/2015/05/android-design-support-library.html)

Basé sur l'échantillon créé par Chris Banes (https://github.com/chrisbanes/cheesesquare) j'ai atteint le point que je suis capable de faire l'effondrement de comportement, mais avec une base LinearLayout (sans défilement horizontal).

J'ai essayé de remplacer le LinearLayout par un ViewPager et j'ai eu un écran vide. J'ai joué avec: la largeur, du poids et de tous type de vue des groupes, mais.... encore un écran vide. Il semble que ViewPager et NestedScrollView n'aiment pas les uns les autres.

J'ai essayé une solution de contournement en utilisant un HorizontalScrollView: il fonctionne mais je perds le bénéfice de la PagerTitleStrip fonctionnalité et de se concentrer sur un seul panneau (je peux arrêter le horizontalement entre les 2 panneaux).

Maintenant je n'ai plus d'idées, si quelqu'un peut me conduire à une solution...

Grâce

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>
  • Avez-vous essayé d'emballage de votre ViewPager à l'intérieur d'un LinearLayout ? Juste curieux de savoir si cela aurait rendu le ViewPager correctement.
  • Oui j'ai essayé mais toujours le même résultat. J'ai fait beaucoup de tests avec plusieurs composants, mais la ViewPager est jamais rendu dans la NestedScrollView peu importe la hiérarchie
  • Je viens de créer une application de test avec un ViewPager à l'intérieur d'un NestedScrollView comme la seule des maquettes, semblait aller bien. J'ai aussi été en mesure de tomber dans un DrawerLayout avec succès. Peut-être il ya un autre aspect de votre code de prévenir les fonctionnalités que vous souhaitez. Soins de partager plus de votre source?
  • Wow, vous êtes en mesure de balayez vers la gauche/droite et haut/bas ? J'utilise simplement un FragmentPagerAdapter pour afficher des fragments dans mon téléavertisseur. Pouvez-vous partager votre exemple de code à la place ?
  • J'ai collé un exemple simple de mise en page ici: pastebin.com/jXPw6mtf Edit: Vous pouvez charger quelle que soit la fragment que vous voulez dans la ViewPager. Je suis capable de faire défiler les points de vue haut et en bas, ainsi que de faire défiler la ViewPager gauche/droite.
  • Ok j'ai vu ton code merci pour le partage. J'ai 2 autres questions: 1 - Êtes-vous capable de mettre un CoordinatorLayout en tant que root vue ? 2 - Quel type de contenu que Vous avez dans votre ViewPager ? fragements ?
  • Laissez-nous continuer cette discussion dans le chat.
  • un peu de chance @Kyso84?

InformationsquelleAutor Kyso84 | 2015-06-01