激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - android實現RecyclerView列表單選功能

android實現RecyclerView列表單選功能

2022-03-10 15:03qq_37217804 Android

這篇文章主要為大家詳細介紹了android實現RecyclerView列表單選功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了android實現RecyclerView列表單選功能的具體代碼,供大家參考,具體內容如下

實現思維

1.首先在一行的xml布局中添加一個選中效果的icon圖片,未選中的情況下INVISIBLE或者GONE 都可以,推薦使用INVISIBLE它會占用布局位置但是不顯示,這樣可以避免布局中其他控件因為勾選布局的消失而輕微變動位置

2.將適配器類中的onCreateViewHolder方法重寫添加按鍵監聽,onBindViewHolder方法中重寫添加判斷點擊的位置(具體原理請查看下面貼的代碼)

PS:

RecyclerView的實現全部方法就不貼出來了,本人的博客中有RecyclerView各種實現效果文章

1.首先在一行的xml布局中添加一個選中效果的icon圖片,未選中的情況下INVISIBLE或者GONE 都可以,推薦使用INVISIBLE它會占用布局位置但是不顯示,這樣可以避免布局中其他控件因為勾選布局的消失而輕微變動位置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">
  <LinearLayout
    android:id="@+id/DeviceList_Layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="20dp">
    <ImageView
      android:id="@+id/DeviceList_ImageView"
      android:layout_width="50dp"
      android:layout_height="wrap_content"
      android:src="@mipmap/preview_image_boy"
      android:layout_gravity="center"/>
    <TextView
      android:id="@+id/DeviceList_NameText"
      android:layout_width="200dp"
      android:layout_height="wrap_content"
      android:text="名稱"
      android:textSize="@dimen/BigTextSize"
      android:textColor="@color/colorBlue"
      android:layout_gravity="center"
      android:layout_marginLeft="20dp"
      android:maxLines="1"/>
    <ImageView
      android:id="@+id/DeviceList_Select"
      android:layout_width="50dp"
      android:layout_height="wrap_content"
      android:src="@mipmap/ic_select"
      android:visibility="invisible"
      android:layout_marginLeft="10dp"
      android:layout_gravity="center"/>
  </LinearLayout>
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="1px"
    android:background="@color/colorBlue"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp">
  </LinearLayout>
</LinearLayout>

效果圖:

android實現RecyclerView列表單選功能

2.將適配器類中的onCreateViewHolder方法重寫添加按鍵監聽,onBindViewHolder方法中重寫添加判斷點擊的位置(具體原理請查看下面貼的代碼)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.example.lenovo.mydemoapp.myDeviceList;
 
 
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
 
import com.example.lenovo.mydemoapp.R;
 
import java.util.List;
 
/**
 * Created by lenovo on 2018/5/18.
 */
 
public class DeivceListAdapter extends RecyclerView.Adapter<DeivceListAdapter.ViewHolder> {
  private List<DeivceListData> mList;
  private int mposition = -1;
 
  public class ViewHolder extends RecyclerView.ViewHolder {
    ImageView mListImage,mListSelect;
    TextView mListNameText;
    LinearLayout mListLayout;
 
    public ViewHolder(View itemView) {
      super(itemView);
      mListImage = (ImageView)itemView.findViewById(R.id.DeviceList_ImageView);
      mListNameText = (TextView)itemView.findViewById(R.id.DeviceList_NameText);
      mListLayout = (LinearLayout)itemView.findViewById(R.id.DeviceList_Layout);
      mListSelect = (ImageView)itemView.findViewById(R.id.DeviceList_Select);
 
    }
  }
  public DeivceListAdapter (List<DeivceListData> list){
    this.mList = list;
 
  }
  @Override
  public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.device_list_row_layout,parent,false);
    final ViewHolder holder = new ViewHolder(view);
 
    /*
    添加選中的打勾顯示
     */
    holder.mListLayout.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //將點擊的位置傳出去
        mposition = holder.getAdapterPosition();
        //在點擊監聽里最好寫入setVisibility(View.VISIBLE);這樣可以避免效果會閃
        holder.mListSelect.setVisibility(View.VISIBLE);
        //刷新界面 notify 通知Data 數據set設置Changed變化
        //在這里運行notifyDataSetChanged 會導致下面的onBindViewHolder 重新加載一遍
        notifyDataSetChanged();
      }
    });
    return holder;
  }
 
  @Override
  public void onBindViewHolder(ViewHolder holder, int position) {
 
    DeivceListData deivceListData = mList.get(position);
    holder.mListImage.setImageResource(deivceListData.getmDeviceListDataImage());
    holder.mListNameText.setText(deivceListData.getmDeviceListDataNameText());
    /*
    onBindViewHolder 方法可能是在class里for添加了其他視圖
    引入mposition與當前的position判斷,判斷在點擊的位置上顯示打勾圖片,在其他位置上不顯示打勾
     */
    if (position == mposition) {
      holder.mListSelect.setVisibility(View.VISIBLE);
    } else {
      holder.mListSelect.setVisibility(View.INVISIBLE);
    }
  }
  @Override
  public int getItemCount() {
    return mList.size();
  }
 
 
}

實現效果

android實現RecyclerView列表單選功能

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_37217804/article/details/80367363

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 成人短视频在线播放 | 男人的天堂视频网站 | 欧美大荫蒂xxx | 国产噜噜噜噜噜久久久久久久久 | 色成人在线 | 成人mm视频在线观看 | 在线播放免费视频 | 成人免费一区二区三区 | 久久久三级免费电影 | 一级一级一级毛片 | 欧美黄 片免费观看 | 97视频 | 亚洲最新无码中文字幕久久 | 国产精品野外av久久久 | 91精品视频免费 | 午夜视频国产 | 成人午夜影院 | 精品国产视频一区二区三区 | 成人情欲视频在线看免费 | 国产精品aⅴ | 久草在线视频看看 | 姑娘第四集免费看视频 | 欧美精品成人一区二区在线观看 | 日韩在线毛片 | 男女羞羞的视频 | 91成人免费电影 | 2019天天干夜夜操 | 久久视讯 | 国产露脸精品爆浆视频 | 91精品国产777在线观看 | 91久久夜色精品国产网站 | 国产九色在线播放九色 | 国外成人在线视频 | 久久久www成人免费精品 | 在线播放av片 | 久久久久国产成人免费精品免费 | 国产精品欧美久久久久一区二区 | 色蜜桃av | 99re色| 九九热国产视频 | 亚洲天堂午夜 |