cardView 后面的 RecyclerView 在不应该点击的时候是可点击的
RecyclerView behind cardView is clickable when it should not be
我有一个cardview,后面有一个"Suggested Contacts"的recyclerview,很像android中的默认拨号器。 CardView 位于屏幕底部,占据了大约 70% 的屏幕,而 RecyclerView 将其高度扩展到 match_parent。当 RecyclerView 滚动时,CardView 消失并显示整个列表。
用户可以点击RecyclerView的其中一项直接进行调用。问题是用户不可见的 CardView 后面的项目也是可点击的。
我怎样才能让只显示为可点击的 RecyclerView 项目? (即当 cardView 可见时)
xml代码:
<ScrollView
android:id="@+id/sv_suggested_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="expandSuggestions">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_suggested_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</ScrollView>
<androidx.cardview.widget.CardView
android:id="@+id/dialer_card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
[...]
您可以将 (setVisibility(View.GONE) 项隐藏在回收器后面,或者将它们设置为不可点击
我假设您的要求是 cardview 应阻止所有点击,以便下面的项目不会正确点击。
如果是这种情况并且您确定 cardview 位于 recyclerview 之上,您只需在 cardview 上设置一个 onClickListener
并且在其中不执行任何操作。基本上是空点击。
或者您可以在 xml 中为 cardview 添加
android:onClick="nullClick"
并在 activity 中创建空函数
public void nullClick(View view) {
}
随你喜欢。
我有一个cardview,后面有一个"Suggested Contacts"的recyclerview,很像android中的默认拨号器。 CardView 位于屏幕底部,占据了大约 70% 的屏幕,而 RecyclerView 将其高度扩展到 match_parent。当 RecyclerView 滚动时,CardView 消失并显示整个列表。
用户可以点击RecyclerView的其中一项直接进行调用。问题是用户不可见的 CardView 后面的项目也是可点击的。
我怎样才能让只显示为可点击的 RecyclerView 项目? (即当 cardView 可见时)
xml代码:
<ScrollView
android:id="@+id/sv_suggested_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="expandSuggestions">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_suggested_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</ScrollView>
<androidx.cardview.widget.CardView
android:id="@+id/dialer_card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
[...]
您可以将 (setVisibility(View.GONE) 项隐藏在回收器后面,或者将它们设置为不可点击
我假设您的要求是 cardview 应阻止所有点击,以便下面的项目不会正确点击。
如果是这种情况并且您确定 cardview 位于 recyclerview 之上,您只需在 cardview 上设置一个 onClickListener
并且在其中不执行任何操作。基本上是空点击。
或者您可以在 xml 中为 cardview 添加
android:onClick="nullClick"
并在 activity 中创建空函数
public void nullClick(View view) {
}
随你喜欢。