?attr/selectableItemBackgroundBorderless 在工具栏 Android Studio 内的 ImageView 中不起作用
Posted
技术标签:
【中文标题】?attr/selectableItemBackgroundBorderless 在工具栏 Android Studio 内的 ImageView 中不起作用【英文标题】:?attr/selectableItemBackgroundBorderless doesn't work in ImageView inside Toolbar Android Studio 【发布时间】:2021-10-25 05:43:43 【问题描述】:我正在尝试在 Toolbar 内的 ImageView 中使用
android:foreground="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
但是当我运行应用程序时,输出看起来像?attr/selectableItemBackground
。然后我试图将Toolbar
更改为RelativeLayout
。可以,但我需要使用 Toolbar 而不是 RelativeLayout。
我也在尝试使用android:background="?attr/selectableItemBackgroundBorderless"
。但是如果我使用android:background
,就不会产生连锁反应。这是我的代码:
<?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_
android:layout_
android:background="@color/colorGrey"
tools:context=".User.BottomNavigationView.Student.StudentDetailActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/student_detail_app_bar_layout"
android:layout_
android:layout_
android:fitsSystemWindows="true"
android:theme="@style/ActionBarTextColor">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/student_detail_collapsing_toolbar"
android:layout_
android:layout_
android:fitsSystemWindows="true"
app:contentScrim="@color/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:title="Detail Siswa">
<ImageView
android:id="@+id/student_detail_profile_picture_image_view"
android:layout_
android:layout_
android:scaleType="centerCrop"
android:src="@drawable/img1"
app:layout_collapseMode="parallax" />
<androidx.appcompat.widget.Toolbar
android:id="@+id/student_detail_toolbar"
android:layout_
android:layout_
app:layout_collapseMode="pin">
<ImageView
android:id="@+id/student_detail_back_button_image_view"
android:layout_
android:layout_
android:layout_centerVertical="true"
android:layout_marginEnd="32dp"
android:clickable="true"
android:foreground="?attr/selectableItemBackgroundBorderless"
android:padding="3dp"
android:src="@drawable/general_back_button"
app:tint="@color/colorPrimaryIcon" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_
android:layout_
android:background="@color/colorGrey"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
我想在 Toolbar 内的 ImageView 中使用 ?attr/selectableItemBackgroundBorderless
或 circular ripple effect
。我该怎么做?
【问题讨论】:
【参考方案1】:添加 focusable 确实会起作用
android:focusable="true"
下面我添加了可点击和可聚焦的代码
android:foreground="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
【讨论】:
可以了,但我还是得到了矩形波纹效果。我希望它是一个圆圈波纹 我认为你在 android:src="" 中使用矢量资源和 assinging,替换为 android:backgrund 并尝试一下。以上是关于?attr/selectableItemBackgroundBorderless 在工具栏 Android Studio 内的 ImageView 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章