Как скрыть текстовое представление, когда изображение полностью свернулось - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть вид изображения, height-264dp и текстовый вид в разборном макете, когда пользователь прокручивает вверх, вид изображения начинает расти, и в определенный момент он останавливается, и панель инструментов занимает свое место, проблема в том, что я хочуудалить текстовое представление, когда свернутый заголовок прокручивается вверх и появляется панель инструментов.

Это мой взгляд, синий цвет фона будет заменен каким-то изображением.

enter image description here

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

enter image description here

Это мой код, он нормально сворачивается, единственная проблема, с которой я сталкиваюсь, это то, что я не могу скрыть просмотр текста, если он идетпрочь, я в порядке.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">


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



        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true">

            <ImageView
                android:id="@+id/iv_newsViewThumbnail"
                android:layout_width="wrap_content"
                android:layout_height="264dp"
                android:background="@drawable/event_home_bg"
                android:scaleType="centerCrop"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />



            <TextView
                android:id="@+id/newsTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginEnd="60dp"
                android:layout_marginBottom="32dp"
                android:fontFamily="@font/barlow_extrabold"
                android:shadowColor="#000000"
                android:shadowRadius="2"
                app:layout_collapseMode="parallax"
                android:text="This is a text VIEW That iwant to hide"
                android:textAllCaps="true"
                android:textColor="@color/white"
                android:layout_gravity="bottom"
                app:layout_scrollFlags="enterAlways"
                android:textSize="24dp" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="70dp"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_collapseMode="pin"
                app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
                >


                <TextView
                    android:id="@+id/tvHome"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="16dp"
                    android:fontFamily="@font/barlow_bold"
                    android:letterSpacing="0.1"
                    android:text="HOME"
                    android:textColor="@color/white"
                    android:textSize="17dp"
                    android:textStyle="bold"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

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



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



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



    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >

        <include layout="@layout/content_webview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />

    </android.support.v4.widget.NestedScrollView>

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

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019
  • Вы можете прослушивать AppBarLayout OffsetChange методом addOnOffsetChangedListener().попробуйте как ниже.

        // Initializing collapsing toolbar
        final CollapsingToolbarLayout collapsingToolbar =
                (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
        collapsingToolbar.setTitle("----");
        AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
        appBarLayout.setExpanded(true);
    
        // hiding & showing the title when toolbar expanded & collapsed
        appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
            boolean isShow = false;
            int scrollRange = -1;
    
            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                if (scrollRange == -1) {
                    scrollRange = appBarLayout.getTotalScrollRange();
                }
                if (scrollRange + verticalOffset == 0) {
                    collapsingToolbar.setTitle(getString(R.string.app_name));
                    isShow = true;
                } else if (isShow) {
                    collapsingToolbar.setTitle("----");
                    isShow = false;
                }
            }
        });
    
0 голосов
/ 26 сентября 2019

Вы можете удалить эту строку

app:layout_scrollFlags="enterAlways"

для вашего просмотра текста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...