Cree un diseño de vista de pie de página que consta de texto que desea establecer como pie de página y luego intente
View footerView = ((LayoutInflater) ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
ListView.addFooterView(footerView);
El diseño del 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);
View footerView = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
list.addFooterView(footerView);
}
}
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.
Las respuestas aquí están un poco desactualizadas. 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
addFooterView()
métodoLa mayoría de las respuestas anteriores enfatizan un punto muy importante:
Desde Kitkat esto ha cambiado.
Documentación
fuente
Sé que esta es una pregunta muy antigua, pero busqué en Google mi camino aquí y encontré que la respuesta no era 100% satisfactoria porque, como mencionó gcl1, de esta manera, el pie de página no es realmente un pie de página en la pantalla, es solo un "complemento "a la lista.
En pocas palabras , para otros que pueden buscar en Google aquí, encontré la siguiente sugerencia aquí: Pie de página fijo y siempre visible debajo de ListFragment
Intente hacer lo siguiente, donde el énfasis está en el botón (o cualquier elemento de pie de página) que aparece primero en el XML, y luego 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>
fuente
Si ListView es un elemento secundario de ListActivity:
getListView().addFooterView( getLayoutInflater().inflate(R.layout.footer_view, null) );
(dentro de onCreate ())
fuente
La actividad en la que desea agregar el pie de página de listview y también he generado un evento al hacer clic en el pie de página de listview.
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>
fuente
En esta pregunta, la mejor respuesta no funciona para mí. Después de eso, encontré este método para mostrar el pie de página de listview,
LayoutInflater inflater = getLayoutInflater(); ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false); listView.addFooterView(footerView, null, false);
Y crea una nueva llamada de diseño 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 consulte este artículo escuche
fuente
puede usar un stackLayout, dentro de este diseño puede poner una lista en un marco, por ejemplo:
<StackLayout VerticalOptions="FillAndExpand"> <ListView ItemsSource="{Binding YourList}" CachingStrategy="RecycleElement" HasUnevenRows="True"> <ListView.ItemTemplate> <DataTemplate> <ViewCell > <StackLayout Orientation="Horizontal"> <Label Text="{Binding Image, Mode=TwoWay}" /> </StackLayout> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> <Frame BackgroundColor="AliceBlue" HorizontalOptions="FillAndExpand"> <Button Text="More"></Button> </Frame> </StackLayout>
este es el resultado:
fuente