我正在使用2種持有人類型(標題和項目)的RecyclerView來顯示活動的內容。每題的項目數量未定義。 就像這樣:RecyclerView:一個OnClickListener通過各種項目?
Title
-Item
-Item
Title
-Item
Title
-Item
-Item
-Item
我正在尋找線索。如何在每個組(標題+項目)上設置一個OnClickListener,以便「OnClick灰色波浪效果」可以在不中斷的情況下瀏覽整個選定的組?
我正在使用2種持有人類型(標題和項目)的RecyclerView來顯示活動的內容。每題的項目數量未定義。 就像這樣:RecyclerView:一個OnClickListener通過各種項目?
Title
-Item
-Item
Title
-Item
Title
-Item
-Item
-Item
我正在尋找線索。如何在每個組(標題+項目)上設置一個OnClickListener,以便「OnClick灰色波浪效果」可以在不中斷的情況下瀏覽整個選定的組?
我相信爲了達到這個目的,你需要把整個組放在一行內(Title + n Items)並以編程方式處理視圖。您可以通過父母佈局android:background="?android:attr/selectableItemBackground"
來實現點擊時的連鎖反應(確保給它一個onClickListener
或至少設置android:clickable="true"
)。
你可以做的是,每個標題視圖中,您可以在RecyclerView
添加項NestedScrollView
內,禁止使用recyclerView.setNestedScrollingEnabled(false)
其滾動,所以它會給你同樣的結果。
如果你想OnClickListener在每個項目或把他們的LinearLayout,並給它你需要創建界面,在屏幕上實現它,你要顯示的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);
}
使用它的ID在活動實施
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());
}
}
是的,但這樣做將不再回收的意見。 :( – Denis
是的,整個組視圖都會被回收,但是標題下的每個項目都不會,如果每個組中沒有很多項目,則可以使用這個視圖 – MohanadMohie
我有很多複合視圖...: (順便說一句,謝謝你的幫助;) – Denis