我有一个cardview,后面有一个“建议的联系人”的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)项目隐藏在回收站后面,或将其设置为不可点击
我假设您的要求是,卡片视图应阻止所有点击,以使下面的项目不会获得点击权限。
[如果是这种情况,并且您确定证卡视图位于recyclerview的顶部,您只需要在证卡视图上设置onClickListener
并在其中进行任何操作即可。基本上是空点击。
或者您可以在xml中为cardview添加
android:onClick="nullClick"
并在活动中创建空函数
public void nullClick(View view) {
}
无论您喜欢哪种方式。