滚动自定义 TabLayout

问题描述

我目前正在 AppBarLayout 中实现一个 TabLayout。这是我在 TabLayout 中想要的效果

Before scrolling

After scrolling

这是 fragment_product_item 的布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ProductItemFragment">

<!-- Todo: Update blank fragment layout -->
<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingVertical="4dp"
        app:layout_scrollFlags="scroll|enteralways">

        <ImageView
            android:id="@+id/imgProductItem"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:contentDescription="@string/img_product_ava_des"
            android:scaleType="centerCrop"
            android:src="@mipmap/ic_launcher" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginStart="16dp"
            android:layout_toEndOf="@id/imgProductItem"
            android:orientation="vertical">

            <TextView
                android:id="@+id/tvProductItemPrice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:text="@string/default_text_placeholder"
                android:textAppearance="?attr/textAppearanceBody1" />

            <TextView
                android:id="@+id/tvProductItemSoldQuantities"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/default_text_placeholder"
                android:textAppearance="?attr/textAppearanceBody1"
                android:textColor="#ACA5A5" />

        </LinearLayout>
    </RelativeLayout>

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/productItemTabs"
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:elevation="5dp"
        app:tabPaddingBottom="8dp"
        app:tabPaddingTop="8dp" />
</com.google.android.material.appbar.AppBarLayout>

...

这是我用于 TabLayout 项自定义布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
    android:id="@+id/imgTabIcon"
    android:layout_width="24dp"
    android:layout_height="24dp"
    android:src="@mipmap/ic_launcher" />

<TextView
    android:id="@+id/tvTabDetail"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_toEndOf="@id/imgTabIcon"
    android:text="@string/default_text_placeholder"
    android:textAppearance="?attr/textAppearanceBody1" />

<TextView
    android:id="@+id/tvTabTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/tvTabDetail"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="8dp"
    android:ellipsize="end"
    android:maxLines="1"
    android:text="@string/default_text_placeholder"
    android:textAppearance="?attr/textAppearanceBody2" />

当像提供的图像那样滚动时,如何仅隐藏 tvTabTitle?抱歉,因为我没有足够的声誉来直接显示图像

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)