Estoy desarrollando una aplicación,En mi solicitud,estoy usando Listview para mostrar datos mediante dom análisis,quiero a pie de página en la vista de lista,cuando hago clic en pie de página adicional más datos añadir a la lista ver,os adjunto la imagen,me gustaría que el diseño y el proceso,por favor consulte image1 y imgae2.Me mención a pie de página en el rectángulo rojo

Fig.1-Pie de página, como «Más Noticias»

Cómo agregar un pie de página en la vista de lista?

Cómo agregar un pie de página en la vista de lista?

Fig2-Añadir 10 registro agregado en listview

InformationsquelleAutor JohnNick | 2010-11-24

6 Comentarios

  1. 202

    Crear un pie de página de la vista de diseño que consta de texto que desea establecer como pie de página y, a continuación, intente

    View footerView = ((LayoutInflater) ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
    ListView.addFooterView(footerView);

    Diseño de pie de página podría ser algo como esto:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="7dip"
        android:paddingBottom="7dip"
        android:orientation="horizontal"
        android:gravity="center">
    
        <LinearLayout 
            android:id="@+id/footer_layout" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_gravity="center">
    
        <TextView 
            android:text="@string/footer_text_1" 
            android:id="@+id/footer_1" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:textSize="14dip" 
            android:textStyle="bold" 
            android:layout_marginRight="5dip" />
        </LinearLayout>
    </LinearLayout> 

    La actividad de la clase podría ser:

    public class MyListActivty extends ListActivity {
        private Context context = null;
        private ListView list = null;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            list = (ListView)findViewById(android.R.id.list);
    
            //code to set adapter to populate list
            View footerView =  ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
            list.addFooterView(footerView);
        }
    }
    • Esto es bueno, pero lo que si desea que el pie de página a ser FIJO en la pantalla, en lugar de sólo visible cuando se desplaza a la parte inferior? Y lo que si desea que el pie de página a ser visible incluso cuando la lista está VACÍA? Véase la pregunta completa en stackoverflow.com/questions/12353701/….
    • He tenido algunos problemas para realizar este trabajo de código y resuelto. Aquí es lo que el addFooterView() estados de documentación NOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied cursor with one that will also account for header and footer views.
    • En ese caso, que no es un pie de página, un simple elemento de diseño que está debajo de la vista de lista. Simplemente, usted sabe, lo puso debajo de la vista de lista?
    • Sólo un grito a @demonsten: si llamada setAdapter() antes de la adición de los puntos de vista, vas a tener un mal momento.
    • si no hay datos en el adaptador de pie de página no asociar (mostrar). entonces, ¿cómo podemos mostrar pie de página, incluso si no hay datos en el adaptador ? gracias
    • usted salvó mi día 😀
    • Usted no tiene idea de lo útil que el comentario era. Estaba teniendo toda clase de extrañas InvalidCastException errores, que me dice que el uso de HeaderViewListAdapater y otras cosas, cuando mi real problema no fue la adición de mi encabezados y pies de página /antes de/ configuración de mi adaptador. Gracias de nuevo.
    • Aquí es una solución para los que obtener una ClassCastException a pesar de la configuración de su adaptador después de agregar el pie de página de una sola línea que envuelve su adaptador y lo convierte en HeaderViewListAdapter: stackoverflow.com/a/10819996/1959110

  2. 9

    Sé que esto es una muy vieja pregunta, pero busqué en google mi camino aquí y encuentra la respuesta no satisfaga al 100%, porque como gcl1 mencionado – de esta manera el pie de página no es realmente un pie de página a la pantalla – es sólo un «add-on» a la lista.

    Parte inferior de la línea para otros que puedan google su camino aquí – me encontré con la siguiente sugerencia aquí: Fijo y siempre visible pie de página a continuación ListFragment

    Trate de hacer de la siguiente manera, donde el énfasis está en el botón (o cualquier elemento pie de página) aparece en primer lugar en el XML y, a continuación, la lista se agrega como «layout_above»:

    <RelativeLayout>
    
    <Button android:id="@+id/footer" android:layout_alignParentBottom="true"/> 
    <ListView android:id="@android:id/list" **android:layout_above**="@id/footer"> <!-- the list -->
    
    </RelativeLayout>
  3. 9

    Respuestas aquí son un poco anticuado. A pesar de que el código sigue siendo el mismo, hay algunos cambios en el comportamiento.

    public class MyListActivity extends ListActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null, false);
            getListView().addFooterView(footerView);
            setListAdapter(new ArrayAdapter<String>(this, getResources().getStringArray(R.array.news)));
        }
    }

    Información sobre addFooterView() método

    Agregar una vista fija para aparecer en la parte inferior de la lista. Si addFooterView() se llama más de una vez, las opiniones aparecerán en el orden en que fueron añadidos. Vistas agregado mediante esta llamada puede tomar el enfoque si se quiere.

    La mayoría de las respuestas anteriores estrés punto muy importante –

    addFooterView() debe ser llamado antes de llamar a setAdapter().Esto es así ListView puede ajustar el adaptador de cursor con el que además se cuenta para encabezado y pie de página vistas.

    De Kitkat esto ha cambiado.

    Nota: Cuando se introdujo por primera vez, este método sólo podría ser llamado antes de configurar el adaptador con setAdapter(ListAdapter). Comenzando con KITKAT, este método puede ser llamado en cualquier momento. Si el ListView del adaptador no se extiende HeaderViewListAdapter, será envuelto con un apoyo a instancia de WrapperListAdapter.

    Documentación

  4. 5

    Si el control ListView es un hijo de la ListActivity:

    getListView().addFooterView(
        getLayoutInflater().inflate(R.layout.footer_view, null)
    );

    (dentro de onCreate())

  5. 2

    La actividad en la que desea agregar listview pie de página y también he generar un evento en listview pie de página haga clic en.

      public class MainActivity extends Activity
    {
    
            @Override
            protected void onCreate(Bundle savedInstanceState)
             {
    
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
    
                ListView  list_of_f = (ListView) findViewById(R.id.list_of_f);
    
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
                View view = inflater.inflate(R.layout.web_view, null);  //i have open a webview on the listview footer
    
                RelativeLayout  layoutFooter = (RelativeLayout) view.findViewById(R.id.layoutFooter);
    
                list_of_f.addFooterView(view);
    
            }
    
    }

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg" >
    
        <ImageView
            android:id="@+id/dept_nav"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/dept_nav" />
    
        <ListView
            android:id="@+id/list_of_f"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/dept_nav"
            android:layout_margin="5dp"
            android:layout_marginTop="10dp"
            android:divider="@null"
            android:dividerHeight="0dp"
            android:listSelector="@android:color/transparent" >
        </ListView>
    
    </RelativeLayout>
  6. 0

    En esta Pregunta, mejor respuesta no trabajo para mí. Después de que me encontré con este método para mostrar listview pie de página,

    LayoutInflater inflater = getLayoutInflater();
    ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false);
    listView.addFooterView(footerView, null, false);

    Y crear nuevos esquemas de llamada footer_layout

    <?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="match_parent">
        <TextView
            android:id="@+id/tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Done"
            android:textStyle="italic"
            android:background="#d6cf55"
            android:padding="10dp"/>
    </LinearLayout>

    Si no funciona se refieren este artículo escuchar

Dejar respuesta

Please enter your comment!
Please enter your name here