我有一個RecyclerView
項目看起來像這樣Android的 - 在它選擇的意見選擇recyclerview項目
我要實現的是,當我點擊項目ImageView
將獲得覆蓋在它和TextView
會變得大膽。我知道如何使用適配器以及在哪裏處理項目點擊。我也知道如何製作重疊或粗體文字。我只想知道如何使這個項目可選,以獲得我上面描述的行爲。因爲我發現只有教程才能在點擊時更改項目的背景。
我有一個RecyclerView
項目看起來像這樣Android的 - 在它選擇的意見選擇recyclerview項目
我要實現的是,當我點擊項目ImageView
將獲得覆蓋在它和TextView
會變得大膽。我知道如何使用適配器以及在哪裏處理項目點擊。我也知道如何製作重疊或粗體文字。我只想知道如何使這個項目可選,以獲得我上面描述的行爲。因爲我發現只有教程才能在點擊時更改項目的背景。
在此基礎上
我只是想知道如何使這個項目可以選擇讓我上述的行爲。
所以基本上你需要一種方式來告訴ViewHolder當前的項目被選中,這樣onBindViewHolder()
項目按照需要被渲染。
我可以這樣想:製作一個你添加到recyclerview的物品的模型。在其中添加一個密鑰爲boolean isSelected= false
。
並在您的onBindViewHolder
裏面實現onClick()接口。做到這一點:
... new OnClickListener({
... onClick(){
// take the item and set the isSelected flag
list.get(position).setIsSelected(true):
notifyDataSetChanged();
// alternatively you can also toggle this flag.
}
});
,並在加載內onBindViewHolder這樣:
if (list.get(position).isSelected()){
// highlight aka set overalay and bold text to view
}else
{
// as per recyclerview doc, reset the views.
}
是的,謝謝。 'boolean isSelected'可能是我想要的。 –
我的榮幸。感謝您將它標記爲答案! – MadScientist
所有你需要的是有一個變量來保存選定的索引。然後裝飾onBindViewHolder()方法中的選定項目。
int selectedIndex = 0;
...
public void onBindViewHolder(ViewHolder viewHolder, int position) {
if (selectedIndex == position) {
// Do things you want
}
}
[一RecyclerView內高亮所選項目]的可能的複製(http://stackoverflow.com/questions/27390682/highlight-selected-item-inside-a-recyclerview) –
只是添加點擊監聽,每個項目的您需要的RecyclerView,並使它們在xml中可點擊 –