Pregunta

estoy desarrollando una aplicación, En mi solicitud, estoy usando Listview para la visualización de datos mediante el análisis dom, quiero pie de página en vista de lista, cuando hago clic en el pie de página adicional más datos se añaden a la vista de lista, os adjunto la imagen, me gustaría que el diseño y el proceso, por favor refiérase imagen1 y imgae2.I mención pie de página en el rectángulo rojo

Fig 1-pie de página como "Más Noticias"
text alt

text alt

Fig2-10 Añadir registro adicional añadido en vista de lista

¿Fue útil?

Solución

Crear un diseño de vista de pie de página que consta de texto que desea establecer como pie de página y luego tratar

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

Disposición 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 clase de actividad 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);
    }
}

Otros consejos

Sé que esto es una pregunta muy antigua, pero busqué en Google mi camino aquí y encontró la respuesta proporcionada no es 100% satisfacción, porque como Gcl1 menciona - de esta forma el pie de página no es realmente un pie de página a la pantalla - es sólo una " complemento" a la lista.

En pocas palabras - para otros que puedan Google su camino aquí - me encontré con la siguiente sugerencia aquí: fija 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 de pie de página) que aparece por primera vez en el XML - y luego se añade la lista 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>

Las respuestas aquí son un poco anticuado. Aunque 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 el método de addFooterView()

  

Añadir un punto de vista fijo a aparecer en la parte inferior de la lista. Si addFooterView() se llama más de una vez, las vistas aparecerán en el orden en que se agregaron. Vistas agregar utilizando esta llamada puede tomar el enfoque si quieren.

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

  

addFooterView() debe ser llamado antes de llamar setAdapter().This es tan ListView puede envolver el cursor suministrado con uno que también representará vistas de encabezado y pie.

De Kitkat esto ha cambiado.

  

Nota: Cuando se introdujo por primera vez, este método sólo podría ser llamado antes de ajustar el adaptador con setAdapter (ListAdapter). A partir de KITKAT, este método puede ser llamado en cualquier momento. Si el adaptador de la ListView no se extiende HeaderViewListAdapter, se envolvió con una instancia de apoyo de WrapperListAdapter.

Documentación

Si el ListView es un hijo de la ListActivity:

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

(dentro onCreate ())

La actividad en la que desea añadir el pie de página vista de lista y también tengo generar un evento en el pie de página listview clic.

  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>

En esta pregunta, mejor respuesta no funciona para mí. Después de eso me encontré con este método para mostrar vista de lista 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 footer_layout llamado diseño

<?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 trabajo, consulte este artículo escuchar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top