Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
La vista de reciclador conmutable de lista/cuadrícula no funciona

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 }

Aquí está el resultado:
ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda