Estoy tratando de crear una vista de reciclador que pueda cambiar el diseño (una lista o una cuadrícula), para eso modifiqué mi adaptador para determinar qué diseño debería usar de acuerdo con la cantidad de tramos. Pero cuando trato de modificar la información del titular no pasa nada. ¿Alguien tiene alguna idea?
aquí está mi adaptador:
class FileAdapter( private val context: Context, private val layoutManager: GridLayoutManager, private var items:MutableList<File>, private val isFolder:Boolean = false ) : RecyclerView.Adapter<FileAdapter.FileViewHolder>() { companion object { private val LIST = 1 private val GRID = 3 private val VIEW_TYPE_LIST = 1 private val VIEW_TYPE_GRID = 2 } override fun getItemViewType(position: Int): Int { val spanCount: Int = layoutManager.spanCount return if (spanCount == LIST) { VIEW_TYPE_LIST } else { VIEW_TYPE_GRID } } override fun onCreateViewHolder(parent: ViewGroup, viewType : Int):FileViewHolder{ val view : View if(!isFolder) { if (viewType == VIEW_TYPE_GRID) { view = LayoutInflater.from(parent.context).inflate(R.layout.file_element, parent, false) } else { view = LayoutInflater.from(parent.context).inflate(R.layout.file_list_element, parent, false) } } else view = LayoutInflater.from(parent.context).inflate(R.layout.folder_element, parent, false) return FileViewHolder(view, viewType) } class FileViewHolder(view : View, viewType: Int) : RecyclerView.ViewHolder(view) { var fileName: TextView? = null var fileImg: ImageView? = null var fileSize: TextView? = null init { if (viewType == VIEW_TYPE_GRID) { val fileName = view.findViewById<TextView>(R.id.file_name) var fileImg = view.findViewById<ImageView>(R.id.file_img) } else { val fileName = view.findViewById<TextView>(R.id.file_name) var fileImg = view.findViewById<ImageView>(R.id.file_img) var fileSize = view.findViewById<TextView>(R.id.file_size) } } } override fun onBindViewHolder(holder: FileViewHolder, position: Int) { val currentFile = items[position] holder.fileName?.text = currentFile.name if(currentFile.isDirectory) //holder.fileImg.setImageResource(getDrawable(R.drawable.ic_folder)) else if(currentFile.extension=="pdf"){ //holder.fileImg.setImageResource(R.drawable.ic_pdf) CoroutineScope(Dispatchers.Default).launch { val bitmapPdf = pdfToBitmap(currentFile) CoroutineScope(Dispatchers.Main).launch { holder.fileImg?.setImageBitmap(bitmapPdf) } } } else if(currentFile.extension=="docx") holder.fileImg?.setImageResource(R.drawable.ic_docx) else if(currentFile.extension=="xlsx") holder.fileImg?.setImageResource(R.drawable.ic_xlsx) else holder.fileImg?.setImageResource(R.drawable.ic_file) } override fun getItemCount() = items.size }