Sólo hay dos gestor de diseño para RecyclerView: LinearLayoutManager y GridLayoutManager. Es allí una manera de utilizar TableLayout como gestor de diseño con RecyclerView? Alguna sugerencia?

EDIT: me pregunto si hay alguna solución sin tener que escribir un gestor de diseño desde cero. TableLayout comportamiento es suficiente para mí, sólo quiero añadir reciclar característica de los problemas de rendimiento en el manejo de gran cantidad de fo datos.

Y la creación de una mesa en busca listview no es resolver mi problema creo yo, porque mi tabla es muy dinámico, no sé, incluso, los nombres de columna, el cliente de decidir todos los detalles de la mesa. Así, células que ser personalizado, los anchos de columna debe ser el ajuste de tamaño automático depende de la longitud del contenido. No creo que listview puede manejar eso.

Gracias de antemano por su ayuda.

  • ¿cuál es sus necesidades?
  • cases.azoft.com/create-custom-layoutmanager-android
  • Necesito implementar una dinámica de la vista de la tabla que se utiliza gran cantidad de datos. Así que creo que debe ser utilizado de alguna manera RecyclerView a problemas de rendimiento.
  • se puede mostrar, lo que es su verdadera requisitos que nos puede ayudar a cabo con más facilidad.
  • Es sólo una vista de la tabla (como JTableen swing) que capaz de manejar gran cantidad de datos. Tengo que mostrar componentes personalizados como combobox, botón en las células. Y, por supuesto, voy a añadir algunas características, como la clasificación, filltering etc. En realidad creo que puedo añadir a que las características en TableLayout pero TableLayout no es la mejor de las soluciones para grandes datos, debido a que necesita para crear todas las vistas antes de la proyección en la pantalla. Por supuesto que no estoy insistiendo en TableLayout, estoy abierta a otras soluciones.
  • usted puede utilizar el listview y el diseño de la fila de archivo como formato tableview y de carga minimumn de datos como 100 registros y proporcionar un botón next(o los que usted puede mantener que en el desplazamiento hacia abajo) para hacer eso y de acuerdo a los datos que se mostrarán. también puede ser muy dinámico. usted puede comentar si ha de ir bien este enfoque y atrapado en algún [email protected]
  • Si no la han visto aún, considere también la de Google en nueva FlexboxLayout: android-developers.googleblog.com/2017/02/…
  • bonito, voy a echarle un vistazo, gracias.
  • El también es StaggeredGridLayoutManager en el apoyo lib. Es que una opción para su caso ?
  • Usted escribió todo, pero todavía su pregunta no está claro. Cuando dices recyclerview le dará problema de rendimiento ¿qué significa esto? No lo has probado? lo que ocurrió cuando intentó? y recyclerview no crear todos los puntos de vista antes de mostrarlo. Es como un grupo de objetos que se crea mucho sólo los objetos de los que es visible para el usuario y lo reutiliza por lo tanto no veo ningún problema de rendimiento no puede ser que se esté haciendo otra cosa mientras se muestran los datos de fondo de cálculo n todos y qué sabe usted acerca de paginación? medium.com/@etiennelawlor/…? por favor s
  • Me refiero a problemas de memoria en realidad. En la tabla de diseño necesito crear todas las filas en un principio pero que con el reciclaje de vista (como usted dice) la creación de sólo un par de puntos de vista es suficiente. Pero no hay ninguna opción para utilizar recycleview como una tabla. Se puede hacer por LinearLayoutManaager pero mi tabla es muy dinámico, como he dicho anteriormente, ni siquiera sabía los nombres de columna. Así que los anchos de columna debe auto cambian de tamaño. Voy a intentar hacer mi pregunta más clara.
  • sí por favor, de la forma de su pregunta correctamente.
  • La solución que yo conozco es el uso de un auto-cambio de tamaño GridLayoutManager. El número de elementos en una fila que se extiende para llenar el ancho de la pantalla, pero el único inconveniente es el ancho de cada una de las cuadrículas es constante: no se puede cambiar de tamaño.
  • Si la papelera de vista no es obligatorio que usted puede utilizar «addView»(Fila de la Tabla) propiedad de los padres TableLayout.
  • podrías explicar más? RecyclerView no es obligatorio pero reciclar mecanismo es obligatorio. ¿Tienes algún ejemplo para hacer esto por addView.
  • por favor, echa un vistazo : bloc de notas.pw/wlerivp1

InformationsquelleAutor Joseph K. | 2017-05-31

5 Comentarios

  1. 8

    Un vistazo a este biblioteca. Parece que es exactamente lo que usted necesita. Tiene un sistema de reciclaje así.

    TableLayout con RecyclerView

    • Es bueno, ya he encontrado. Gracias por compartir. Todavía estoy buscando su arquitectura y parece que no hay auto-tamaño de la columna de la característica. Y también creo que su código es demasiado complejo para mantener y añadir nuevas características.
    • bueno, yo creo que usted tiene un no-trivial pregunta, que asume un complejo extra-ordinario de codificación. Así que se espera que usted debe pensar mucho en cómo ponerlo en práctica 🙂 yo no veo ningún problema a la bifurcación de la repo y ajustarlo a sus necesidades. Y sí, usted necesitará calcular diseño de tamaño por sí mismo dependiendo de su contenido de la celda, así que supuestamente tendrás algo como AutoSizeRelativeLayout.
    • Por supuesto, estoy totalmente de entender que es difícil implementar una tabla compleja en android. Todavía estoy buscando en este y otros proyectos de github para encontrar la mejor manera de implementar una vista de tabla. Gracias por AutoSizeRelativeLayout punta.
    • por cierto, +1 de consejos y orientación.
  2. 0

    Crear una fila personalizada con linearlayout y que adjuntar esa fila para recyclerView Adaptador esta es sólo la solución para la fabricación de una tabla como la Estructura de RecyclerView.

  3. 0

    He intentado esto para hacer una tabla como la estructura, y funcionó.

    Para su RecyclerView del adaptador de aplicación,
    crear un Horizontalscrollview diseño, y colocar todos los elementos en su interior, en su adaptador diseño de xml para cada fila.

    En el principal de diseño xml que desea agregar el reciclador de ver, agregar un HorizontalScrollView como su padre.
    Ahora, agregue un TableLayout a la HorizontalScrollView

    Estoy agregando a continuación el código para el adaptador de layout xml:

    <HorizontalScrollView 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/horizontalScroll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <!--Any custom layout here as per your need-->
    </HorizontalScrollView>

    Estoy agregando a continuación el código principal de diseño xml:

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <HorizontalScrollView>
        <android.support.v7.widget.RecyclerView
            android:id="@+id/empView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="select"
            android:scrollbars="vertical">        
        </android.support.v7.widget.RecyclerView>
            </HorizontalScrollView>
    
    </TableLayout>

    Esto se asegurará de que usted es capaz de tener una tabla como la estructura para desplazarse horizontal y verticalmente con recyclerview.

    La HorizontalscrollView permite horizontalmente desplácese por la lista entera en el interior del TableLayout. El RecyclerView permite verticalmente desplazarse por la lista.

    Espero que esto funcione para usted.

  4. -1

    Puede usar 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 MainActivity.java archivo.

    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 activity_main.xml el archivo de diseño.

    <?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 RecyclerViewAdapter.java archivo.

    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 recycler_view_items.xml el archivo de diseño.

    <?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 siga simple diseño de la mesa de android diseño de tabla – la simple ejemplo

    • Esta es la creación de tamaño fijo de filas y de columnas. Necesito una tabla dinámica que la columna podría ser el cambio de tamaño de acuerdo con el contenido.
    • usted puede utilizar el diseño personalizado dentro de LinearLayout/RelativeLaout con wrap_content con RecyclerView

Dejar respuesta

Please enter your comment!
Please enter your name here