1
有關於如何做一個簡單的RecyclerView
Click事件處理程序,但我不能找到這個基本期望的功能幫助各種材料。我想使之成爲選擇(怎麼看我改變高度和顏色,使其看起來選中),以便能夠long tap
上的項目。然後,如果在我的Fragment
我想基於一個Toolbar
刪除按鈕點擊例如RecyclerView
刪除一個項目,我將如何做,如果谷歌認爲,我們不應該保持位置的情況下從適配器在課外。RecyclerView項目選擇以及如何禁用觸摸事件
我從23.2.0支持庫實現了一個BottomSheet
,看來我上面的RecyclerView
但點擊經歷,它就像我控制RecyclerView本身,而是我也有在上面BottomSheet
。我怎樣才能'禁用'它?
我試過:使用interface,設置clickable=true
頂部佈局視圖。
我RecyclerAdapter
:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.EventViewHolder> {
private List<Event> eventsList;
private int selected_position = -1;
private RecyclerView recyclerView;
Typeface font;
Typeface fontBold;
public RecyclerAdapter(List<Event> eventsList, RecyclerView recyclerView) {
this.eventsList = eventsList;
this.recyclerView = recyclerView;
}
@Override
public RecyclerAdapter.EventViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.
from(parent.getContext()).
inflate(R.layout.events_cardview, parent, false);
font = Typeface.createFromAsset(itemView.getContext().getAssets(), "ubuntu-l.ttf");
fontBold = Typeface.createFromAsset(itemView.getContext().getAssets(), "ubuntu-b.ttf");
return new EventViewHolder(itemView);
}
@Override
public void onBindViewHolder(RecyclerAdapter.EventViewHolder eventViewHolder,final int position) {
if(selected_position == position){
// Here I am just highlighting the background
eventViewHolder.cardView.setCardBackgroundColor(ContextCompat.getColor(MyApplication.getAppContext(), R.color.tealfifty));
if (Build.VERSION.SDK_INT >= 21) {
eventViewHolder.itemView.setElevation(10f);
eventViewHolder.itemView.setTranslationZ(10f);
}
}else{
if (Build.VERSION.SDK_INT >= 21) {
eventViewHolder.itemView.setElevation(2f);
eventViewHolder.itemView.setTranslationZ(2f);
}
eventViewHolder.cardView.setCardBackgroundColor(ContextCompat.getColor(MyApplication.getAppContext(), R.color.white));
}
eventViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RecyclerView.LayoutManager lm = recyclerView.getLayoutManager();
// Updating old as well as new positions
notifyItemChanged(selected_position);
selected_position = position;
notifyItemChanged(selected_position);
lm.scrollToPosition(selected_position);
}
});
Event event = eventsList.get(position);
eventViewHolder.itemView.setTag(R.integer.EVENT_OBJECT_TAG, event);
....