管理重叠FloatingActionButton和ProgressBar上的点击

时间:2019-08-19 07:56:16

标签: android android-view android-custom-view floating-action-button

我正在创建这样的视图enter image description here

我已经使用约束布局在浮动操作按钮顶部设置进度条。

喜欢

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/playBarView"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            app:layout_constraintBottom_toTopOf="@+id/navigation"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/containerLayout">


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="24dp"
                    app:srcCompat="@drawable/ic_prev" />

                <com.google.android.material.floatingactionbutton.FloatingActionButton
                    android:id="@+id/musicButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:elevation="2dp"
                    app:fabCustomSize="60dp"
                    app:maxImageSize="40dp"
                    app:rippleColor="@android:color/holo_blue_light"
                    app:srcCompat="@drawable/ic_play" />

                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="24dp"
                    app:srcCompat="@drawable/ic_next" />

            </LinearLayout>

            <ProgressBar
                android:id="@+id/playProgress"
                style="?android:progressBarStyleHorizontal"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:clickable="false"
                android:focusable="false"
                android:progress="70"
                android:progressDrawable="@drawable/progress_circle"
                android:visibility="visible"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </androidx.constraintlayout.widget.ConstraintLayout>

问题是,当我单击它时,仅触发进度条单击,这很有意义,因为进度条位于FAB的顶部。

当我单击FAB时,我希望在其上应用波纹单击效果。

有什么方法可以禁用进度条上的单击,而仅将FAB设置为可点击?

1 个答案:

答案 0 :(得分:0)

禁用点击应该可以解决问题。 将android:clickable="false"添加到progressbar xml或代码中的progressBar.setClickable(false);
另外,您可以设置触摸监听器以防止触摸被阻塞:
progressBar.setOnTouchListener((v, event) -> false);