CollapsingToolbarLayout с внутренней группой просмотра не позволяет нажимать на вложенные представления внутри нее - PullRequest
0 голосов
/ 24 февраля 2020

Это верхняя часть моей деятельности XML -

<?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:id="@+id/activity_product_page_root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/activity_product_page_appbarlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:elevation="0dp">


        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:layout_scrollFlags="scroll|enterAlways">

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/activity_product_page_top_product_layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <ImageView
                    android:id="@+id/activity_product_page_back_button"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/marketplace_14dp"
                    android:layout_marginEnd="@dimen/marketplace_14dp"
                    android:contentDescription="@string/marketplace_productvendor_page_back_button"
                    android:onClick="backButtonPressed"
                    android:src="@drawable/arrow_left"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <ImageView
                    android:id="@+id/activity_product_page_vendor_icon_image"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/marketplace_14dp"
                    android:layout_marginEnd="@dimen/marketplace_14dp"
                    android:contentDescription="@string/marketplace_productvendor_page_vendor_image"
                    android:scaleType="centerCrop"
                    android:src="@mipmap/ic_launcher"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.5"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    tools:layout_width="200dp" />

                <FrameLayout
                    android:id="@+id/activity_product_page_shopping_cart_framelayout"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/marketplace_14dp"
                    android:layout_marginEnd="@dimen/marketplace_14dp"
                    android:background="@color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent">

                    <ImageView
                        android:id="@+id/activity_checkout_cart_imageView"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_margin="20dp"
                        android:layout_marginTop="10dp"
                        android:layout_marginBottom="10dp"
                        android:src="@drawable/icons_32_x_32_black_shopping_cart" />

                    <TextView
                        android:id="@+id/activity_product_page_shopping_cart_counter"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_gravity="end"
                        android:layout_marginTop="5dp"
                        android:layout_marginEnd="3dp"
                        android:background="@drawable/textview_round_background"
                        android:elevation="1dp"
                        android:gravity="center"
                        android:maxLines="1"
                        android:textAlignment="center"
                        android:textColor="@color/white"
                        android:textSize="10sp"
                        android:textStyle="bold"
                        android:visibility="gone"
                        app:autoSizeMaxTextSize="16sp"
                        app:autoSizeMinTextSize="10sp"
                        app:autoSizeStepGranularity="2sp"
                        app:layout_constraintStart_toEndOf="@+id/activity_checkout_cart_imageView"
                        app:layout_constraintTop_toTopOf="parent"
                        tools:ignore="SmallSp"
                        tools:text="1"
                        tools:visibility="visible" />


                </FrameLayout>

                <View
                    android:id="@+id/activity_shopping_cart_top_view"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="@color/marketplace_view_line_color"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.appcompat.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize" />

        </com.google.android.material.appbar.CollapsingToolbarLayout>

    </com.google.android.material.appbar.AppBarLayout>

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

Я проверил несколько вопросов на эту тему, и ни один из них не помог мне - некоторые предлагали сделать собственный класс панели инструментов, который всегда переопределяет onTouchEvent() на false, но когда я пытаюсь использовать этот класс, он не отображается в XML редактор по какой-то причине.

Другие решения, которые я нашел по net, не дали мне никаких полезных решений.

Итак, как я могу сделать вложенные представления кликабельными?

1 Ответ

0 голосов
/ 24 февраля 2020

Решено, я добавил следующую строку в мой CollapsingToolbarLayout -

android:descendantFocusability="blocksDescendants"
...