Nano Hash - криптовалюты, майнинг, программирование

Прокрутка и закрепление CoordinatorLayout

У меня: есть 1. Панель инструментов, 2. ViewPager, 3. TabLayout, 4. маленький ViewPager, 5. ViewPager для фрагмента с RecyclerView :)

введите здесь описание изображения


Желательно: когда RecyclerView внутри 5. ViewPager внизу прокручивается, 1.Toolbar, 3.TabLayout, 4.ViewPager должны быть закреплены, и ТОЛЬКО 2.ViewPager должен прокручиваться и прошло, как показано ниже:

введите здесь описание изображения


Проблема: я не могу закрепить только 2.ViewPager без закрепления 1.Toolbar. Таким образом, я прикрепляю и 1.Toolbar, и 2.ViewPager, или ни один из них.

введите здесь описание изображения


Вопрос: Как скрыть 2.ViewPager только при прокрутке?

Код:

<?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:id="@+id/coordinatorLayoutFeedNew"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_white"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbarLayoutFeedNew"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/color_white"
        android:fitsSystemWindows="true">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbarFeedNew"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@drawable/toolbar_shadow"
            android:gravity="center_horizontal"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

            <ImageView
                android:id="@+id/toolbarLogoFeedNew"
                android:layout_width="wrap_content"
                android:layout_height="32dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:src="@drawable/fenerbahce_logo" />

        </android.support.v7.widget.Toolbar>

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPagerTopFeedNew"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:background="@drawable/mavi_bg_gradient"
            app:layout_scrollFlags="scroll|enterAlways" />

        <LinearLayout
            android:id="@+id/layoutTabAndSkor"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/haberler_bg"
            android:orientation="vertical">

            <android.support.design.widget.TabLayout
                android:id="@+id/tabLayoutFeedNew"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/genel_haberler_bant"
                app:tabGravity="fill"
                app:tabMode="scrollable"
                app:tabSelectedTextColor="@color/color_light_gray"
                app:tabTextAppearance="@style/tabLayoutTextAppearance"
                app:tabTextColor="@color/color_white" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="58dp"
                android:background="@null"
                android:orientation="vertical">


                <android.support.v4.view.ViewPager
                    android:id="@+id/viewPagerSkorFeedNew"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@null" />

                <com.viewpagerindicator.CirclePageIndicator
                    android:id="@+id/circleIndicatorFeedNew"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:background="@null"
                    android:paddingBottom="4dp"
                    android:paddingTop="4dp"

                    app:fillColor="@color/color_white"
                    app:pageColor="#bbbbbb"
                    app:strokeColor="#bbbbbb" />
            </LinearLayout>
        </LinearLayout>

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

    <com.pordiva.coreproject.component.NonSwipableViewPager
        android:id="@+id/viewPagerPostsFeedNew"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/color_white"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

  • Это то, что вы пытаетесь сделать/достичь? i.stack.imgur.com/y20rH.png немного сложно. и вы сказали: How to only pin 2.ViewPager when scrolling? на этой картинке ViewPager-2 больше нет. 01.02.2016
  • Возьмите 3-4-5 из AppBarLayout. Закрепите 1 и сделайте 2 прокручиваемыми. 01.02.2016

Ответы:


1

Если я правильно понял, вы можете использовать CollapsingToolbarLayout с этим флагом:

app:layout_scrollFlags="scroll|exitUntilCollapsed" 

Что говорит:

Прокрутите представление и после того, как оно свернуто, выйдите (или скройте его после сворачивания).

Вот хороший пример того, как это работает: https://github.com/TheLittleNaruto/SupportDesignExample.

Просто поместите в него свое содержимое, потому что после того, как оно рухнет, оно скроется или выйдет из этого представления. Я думаю, это то, что вы искали.


EDIT: используйте его в своей реализации.

Или что-то вроде этого:

<android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbarFeedNew"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPagerTopFeedNew"
                android:layout_width="match_parent"
                android:layout_height="150dp" />

            <!--Perhaps a ViewPager-->

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

        <android.support.design.widget.TabLayout
            android:id="@+id/tabLayoutFeedNew"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/darker_gray"
            app:tabMode="scrollable" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="58dp"
            android:background="@null"
            android:orientation="vertical">

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPagerSkorFeedNew"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@null" />

           <com.viewpagerindicator.CirclePageIndicator
                android:id="@+id/circleIndicatorFeedNew"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:background="@null"
                android:paddingBottom="4dp"
                android:paddingTop="4dp"
                app:fillColor="@color/color_white"
                app:pageColor="#bbbbbb"
                app:strokeColor="#bbbbbb" />

        </LinearLayout>

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

Надеюсь, это поможет.

01.02.2016
  • Не работает, я перепробовал более 10 комбинаций :D 01.02.2016
  • Все работало, не знаю в чем проблема :) 01.02.2016

  • 2
  • я поместил последний ViewPager в последний LinearLayout, на этот раз флаги прокрутки не работают. если я поставлю последний ViewPager после последнего LinearLayout, тогда tablayout потеряется 01.02.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..