Buat tata letak tampilan footer yang terdiri dari teks yang ingin Anda tetapkan sebagai footer, lalu coba
View footerView = ((LayoutInflater) ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
ListView.addFooterView(footerView);
Tata letak untuk footer bisa seperti ini:
<?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>
Kelas aktivitas dapat berupa:
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.
Jawaban di sini agak ketinggalan jaman. Meskipun kodenya tetap sama, ada beberapa perubahan dalam perilaku.
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))); } }
Info tentang
addFooterView()
metodeSebagian besar jawaban di atas menekankan poin yang sangat penting -
Dari Kitkat ini telah berubah.
Dokumentasi
sumber
Saya tahu ini adalah pertanyaan yang sangat lama, tetapi saya mencari cara saya di sini dan menemukan jawaban yang diberikan tidak 100% memuaskan, karena seperti yang disebutkan gcl1 - dengan cara ini footer sebenarnya bukan footer ke layar - ini hanya "add-on "ke daftar.
Intinya - untuk orang lain yang mungkin mencari di Google dengan cara mereka di sini - Saya menemukan saran berikut di sini: Footer tetap dan selalu terlihat di bawah ListFragment
Coba lakukan hal berikut, dengan penekanan pada tombol (atau elemen footer apa pun) yang tercantum pertama kali dalam XML - lalu daftar tersebut ditambahkan sebagai "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>
sumber
Jika ListView adalah anak dari ListActivity:
getListView().addFooterView( getLayoutInflater().inflate(R.layout.footer_view, null) );
(di dalam onCreate ())
sumber
Aktivitas di mana Anda ingin menambahkan footer listview dan saya juga menghasilkan acara di klik footer 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>
sumber
Dalam Pertanyaan ini, jawaban terbaik tidak berhasil untuk saya. Setelah itu saya menemukan metode ini untuk menampilkan footer listview,
LayoutInflater inflater = getLayoutInflater(); ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false); listView.addFooterView(footerView, null, false);
Dan buat layout baru, panggil 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>
Jika tidak berhasil merujuk artikel ini mendengar
sumber
Anda dapat menggunakan stackLayout, di dalam tata letak ini Anda dapat meletakkan bingkai pada daftar, misalnya:
<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>
ini hasilnya:
sumber