我正在使用带有2种持有人类型(标题和项目)的RecyclerView来显示活动的内容。每个标题的项目数量未定义。 就像这样:
Title
-Item
-Item
Title
-Item
Title
-Item
-Item
-Item
我正在寻找线索。如何在每个组(标题+项目)上设置OnClickListener,以便“OnClick灰色波浪效果”浏览整个选定的组而不会中断?
答案 0 :(得分:1)
我相信为了达到这个目的,你需要将整个组放在一行(Title + n Items)中并以编程方式处理视图。您可以在点击时为父级布局android:background="?android:attr/selectableItemBackground"
提供涟漪效果(请确保为onClickListener
或至少设置android:clickable="true"
)。
您可以做的是,在每个标题视图中,您可以在RecyclerView
内的NestedScrollView
中添加项目并使用recyclerView.setNestedScrollingEnabled(false)
禁用其滚动,这样它就会为您提供同样的结果。
答案 1 :(得分:-1)
如果你想在每个项目中使用OnClickListener或将它们放在Linearlayout中并给它id,你需要创建界面并在你想要显示recycleview适配器并在适配器中使用它的屏幕中实现它
public interface OnLevelClick {
void onTitleClick(int pos);
void onItem(int pos);
}
OnLevelClick onLevelClick;
public LevelAdapters(Activity activity, ArrayList<Items>
arrayListItems, OnLevelClick onLevelClick) {
this.arrayListItems = arrayListItems;
this.onLevelClick = onLevelClick;
this.activity =activity;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int
position) {
holder.tvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onLevelClick.onTitleClick(position);
}
//// or
holder.linear.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View view) {
onLevelClick.onTitleClick(position);
}
在活动工具
中 Activity implements OnLevelClick{
levelAdapter = new
LevelAdapters(getActivity(),savedLevelList,this);
reLevel.setAdapter(levelAdapter);
@Override
public void onNumClick(int pos) {
Log.d("Title",arraylist.get(po0s).getTitle());
}
}