TableLayout con RecyclerView

Sólo hay dos gestores de diseño para RecyclerView : LinearLayoutManager y GridLayoutManager . ¿Hay alguna manera de utilizar TableLayout como gestor de diseño con RecyclerView ? ¿Cualquier sugerencia?

EDIT: Me pregunto si hay alguna solución sin escribir un gestor de diseño desde cero. Comportamiento de TableLayout es suficiente para mí, sólo quiero agregar la función de reciclaje de los problemas de rendimiento en el manejo de gran cantidad de datos fo.

Y la creación de una tabla mirando listview no es resolver mi problema, creo, porque mi mesa es muy dinámica, no sé ni siquiera nombres de columna, el cliente decide todos los detalles de la tabla. Así que las celdas serían personalizadas, el ancho de las columnas debe ser el redimensionamiento automático depende de la longitud del contenido. No creo que listview pueda manejar eso.

Gracias de antemano por las ayudas.

Echa un vistazo a esta biblioteca . Parece que es exactamente lo que necesita. Tiene un sistema de reciclaje también.

Hay muchas bibliotecas de código abierto y códigos disponibles para averiguar cómo se puede desarrollar.

  1. https://github.com/evrencoskun/TableViewSample
  2. https://github.com/HYY-yu/TableRecyclerView
  3. https://github.com/Cleveroad/AdaptiveTableLayout
  4. https://github.com/celerysoft/TableFixHeaders

Recomendaría que construyas tu propia vista de tabla usando RecyclerView anidado cuyos elementos representan filas de tabla y cada elemento tiene un RecyclerView que muestra las columnas de celda. Así que puede crear celdas de la tabla dinámicamente. Y cada recyclerviews maneja gestiones de memoria propia, reutilizar todos los visores de celda.

Justo como esto:

Introduzca aquí la descripción de la imagen

Puede utilizar Android RecyclerView con GridView GridLayoutManager ejemplo tutorial

http://www.android-examples.com/android-recyclerview-with-gridview-gridlayoutmanager/

Android RecyclerView con GridView GridLayoutManager ejemplo tutorial.

Código para el archivo MainActivity.java.

 package com.android_examples.recyclerviewgridview_android_examplescom; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; public class MainActivity extends AppCompatActivity { RecyclerView recyclerView; Context context; RecyclerView.Adapter recyclerView_Adapter; RecyclerView.LayoutManager recyclerViewLayoutManager; String[] numbers = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = getApplicationContext(); recyclerView = (RecyclerView) findViewById(R.id.recycler_view1); //Change 2 to your choice because here 2 is the number of Grid layout Columns in each row. recyclerViewLayoutManager = new GridLayoutManager(context, 2); recyclerView.setLayoutManager(recyclerViewLayoutManager); recyclerView_Adapter = new RecyclerViewAdapter(context,numbers); recyclerView.setAdapter(recyclerView_Adapter); } } 

Código para el archivo de diseño activity_main.xml.

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.android_examples.recyclerviewgridview_android_examplescom.MainActivity" android:id="@+id/relativelayout"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view1" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" > </android.support.v7.widget.RecyclerView> </RelativeLayout> 

Código para el archivo RecyclerViewAdapter.java.

 package com.android_examples.recyclerviewgridview_android_examplescom; import android.content.Context; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; /** * Created by JUNED on 6/16/2016. */ public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{ String[] values; Context context1; public RecyclerViewAdapter(Context context2,String[] values2){ values = values2; context1 = context2; } public static class ViewHolder extends RecyclerView.ViewHolder{ public TextView textView; public ViewHolder(View v){ super(v); textView = (TextView) v.findViewById(R.id.textview1); } } @Override public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){ View view1 = LayoutInflater.from(context1).inflate(R.layout.recycler_view_items,parent,false); ViewHolder viewHolder1 = new ViewHolder(view1); return viewHolder1; } @Override public void onBindViewHolder(ViewHolder Vholder, int position){ Vholder.textView.setText(values[position]); Vholder.textView.setBackgroundColor(Color.CYAN); Vholder.textView.setTextColor(Color.BLUE); } @Override public int getItemCount(){ return values.length; } } 

Código para el archivo de diseño recycler_view_items.xml.

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/cardview1" android:layout_width="match_parent" android:layout_height="wrap_content" card_view:cardElevation="7dp" card_view:contentPadding="7dp" card_view:cardCornerRadius="7dp" card_view:cardMaxElevation="7dp" > <TextView android:id="@+id/textview1" android:layout_width="match_parent" android:layout_height="match_parent" android:textSize="20dp" android:textStyle="bold" android:padding="10dp" android:layout_gravity="center" android:gravity="center" /> </android.support.v7.widget.CardView> 

http://www.android-examples.com/android-recyclerview-with-gridview-gridlayoutmanager/

O seguir la disposición simple de la tabla disposición androide de la tabla – exmple simple

Cree una fila personalizada con linearlayout y adjunte esa fila a recyclerView Adapter esto es sólo la solución para hacer una tabla como Structure en RecyclerView.

  • Algo raro sucede mientras se desplaza RecyclerView demasiado rápido
  • Cómo mantener RecyclerView siempre desplazarse hacia abajo
  • Desplazamiento Horizontal Liso de Recyclerview dentro de Scrollview
  • Horizontal RecyclerView con elementos que tienen altura dinámica
  • RecyclerVista la lista con los artículos con los límites en un ángulo, no horizontal
  • Resaltar el elemento seleccionado dentro de un RecyclerView
  • RecyclerVer elementoClickListener en Kotlin
  • Android recyclerView findViewHolderForAdapterPosition devuelve null
  • Los divisores no se mostraron en RecyclerView después de addItemDecoration () llamado
  • Cómo resaltar correctamente el elemento seleccionado en RecyclerView?
  • ¿Cómo realizar un seguimiento de los elementos seleccionados en un RecyclerView en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.