我試圖強調我的橫向RecyclerView的項目在Drag/Touch.Like中,他們實現了這一點,用於在上傳視頻時選擇縮略圖。請建議,如果你知道如何做到這一點。如何突出顯示像Instagram一樣的拖放/觸摸的Recycler視圖項目?
0
A
回答
0
你可以讓你自定義的ItemTouchHelperViewHolder類的項目選擇和明確的拖放:
public interface ItemTouchHelperViewHolder {
void onItemSelected(int adapterPosition);
void onItemClear(int adapterPosition, int position);
}
這是CustomSimpleTouchListner類:
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
// We only want the active item to change
if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
if (viewHolder instanceof ItemTouchHelperViewHolder) {
// Let the view holder know that this item is being moved or dragged
ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
itemViewHolder.onItemSelected();
}
}
super.onSelectedChanged(viewHolder, actionState);
}
@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
super.clearView(recyclerView, viewHolder);
viewHolder.itemView.setAlpha(ALPHA_FULL);
if (viewHolder instanceof ItemTouchHelperViewHolder) {
// Tell the view holder it's time to restore the idle state
ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
itemViewHolder.onItemClear(fromPos, toPos);
}
}
擴展此類在Recycleview ViewHolder
public class ViewHolder extends RecyclerView.ViewHolder implements ItemTouchHelperViewHolder {
public ViewHolder(View itemView) {
super(itemView);
}
@Override
public void onItemSelected(int adapterPosition) {
itemView.setBackgroundColor(activity.getResources().getColor(R.color.presented_color));
}
@Override
public void onItemClear(int adapterPosition, int position) {
itemView.setBackgroundColor(activity.getResources().getColor(android.R.color.transparent));
}
}
-1
https://stackoverflow.com/a/35360331/5098486
這樣的回答使得它可以很容易地修改您的recyclerView選定的項目。
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
Item item = items.get(position);
if(selected_position == position){
// Here I am just highlighting the background
holder.itemView.setBackgroundColor(Color.GREEN);
}else{
holder.itemView.setBackgroundColor(Color.TRANSPARENT);
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Updating old as well as new positions
notifyItemChanged(selected_position);
selected_position = position;
notifyItemChanged(selected_position);
// Do your another stuff for your onClick
}
});
}
0
我還沒有去Instagram看看你真正想要什麼,但它似乎應該使用setOnTouchListener突出顯示特定的單元格。你會得到每個單元觸摸事件的通知。查看下面的鏈接作爲例子。
相關問題
- 1. 如何突出顯示Recycler視圖中的選定項目
- 2. 如何突出顯示用戶觸摸它的圖像視圖?
- 3. 如何突出顯示ListView項目的觸摸?
- 4. Sencha觸摸清單項目泄露 - 如何突出顯示
- 5. 如何在iphone上觸摸事件突出顯示圖像
- 6. 突出顯示一個觸摸
- 7. 防止在觸摸內容視圖中的圖像時突出顯示UITableViewCell
- 8. 觸摸佈局時突出顯示可點擊的圖像
- 9. 通過觸摸拖動圖像視圖
- 10. 基於視圖的NSOutlineView拖放突出顯示不正確
- 11. 如何在VS2003中突出顯示rdl項目的xml視圖?
- 12. 拖放圖像以觸摸屏
- 13. 觸摸時不突出顯示錶格視圖行
- 14. jQuery拖放到突出顯示的框
- 15. 在Recycler視圖中一次顯示單個項目
- 16. EditText觸摸時沒有突出顯示
- 17. 如何在列表視圖項目上啓用突出顯示
- 18. 在Recycler視圖中不按順序顯示的項目
- 19. Java拖放顯示項目拖動
- 20. 如何突出顯示拖放前可排序的潛在拖放區域?
- 21. Wpf突出顯示ListViewItem上拖放
- 22. 拖放,防止尷尬突出顯示?
- 23. 如何突出顯示ListView項目
- 24. 如何自定義NSTableView的拖放突出顯示?
- 25. 如何處理拖放圖像視圖中的拖放事件?
- 26. 突出顯示GridView項目
- 27. WPF突出顯示項目
- 28. Flex Tree中的選定項目在拖放後不會突出顯示
- 29. 如何使用*突出顯示功能*突出顯示ListView中的項目?
- 30. 如何在Android中觸摸時突出顯示佈局?
我們必須重寫onSelectedChanged和clearView方法。 –
當您將其擴展到ItemTouchHelper.Callback類'public class CustomItemTouchHelperCallback extends ItemTouchHelper.Callback' –