Добавление заголовка в ListView в Android

Мне нужно добавить заголовок в свой список, и заголовок должен всегда показывать даже прокручиваемый список.

Возможно ли это в виде списка андроидов?

Решение, которое работает для меня, – создать TableLayout, в котором есть строка с заголовком и строкой со списком, подобным этому:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <include layout="@layout/header" /> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent"/> </TableLayout> 

Убедитесь, что ListView имеет @android: id / list в качестве идентификатора.

Вы можете добавить заголовок в виде списка следующим образом:

 View headerView = ((LayoutInflater)Activity.this.getSystemService(Activity.this.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.header, null, false); list.addHeaderView(headerView) 

Да, вот что я сделал:

витрина

Для настраиваемого макета с ListActivity или ListFragment ваш макет должен содержать ListView с атрибутом android:id установленным в @android:id/list .

1) main_layout.xml :

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > // custom Headers <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:gravity="center" android:text="@string/systolic" /> <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:gravity="center" android:text="@string/diastolic" /> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:gravity="center" android:text="@string/date" /> </LinearLayout> // This is important to be exactly like below ,android:id="@android:id/list" <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/linearLayout1" > </ListView> </RelativeLayout> 

Для пользовательского макета для каждой строки списка,

2) custom_list_row.xml :

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/bpSysHolder" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:layout_gravity="center_vertical" android:text="TextView" > </TextView> <TextView android:id="@+id/bpDiaHolder" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:layout_gravity="center_vertical" android:text="TextView" > </TextView> <TextView android:id="@+id/bpDtHolder" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:layout_gravity="center_vertical" android:text="TextView" > </TextView> </LinearLayout> 

3) ListActivity :

 public class HistoryActivity extends ListActivity { private SimpleCursorAdapter dbAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // this is neccessery for you setContentView(R.layout.main_layout); dao = new BpDAO(this); Cursor bpList = dao.fetchAll_bp(); String[] from = new String[] { BpDAO.bp_SYS, BpDAO.bp_DIA, BpDAO.bp_DT }; int[] target = new int[] { R.id.bpSysHolder, R.id.bpDiaHolder, R.id.bpDtHolder }; // And this for custom row layout for each list row dbAdapter = new SimpleCursorAdapter(this, R.layout.custom_list_row, bpList, from, target); setListAdapter(dbAdapter); } @Override protected void onDestroy() { super.onDestroy(); dao.close(); } @Override public void onListItemClick(ListView l, View view, int position, long id) { // TODO something on item click } } 

Если вам это нужно, проверьте: « Прикрепление липкого (фиксированного) заголовка / нижнего колонтитула к списку »

Сделайте одно. Поместите один TextView прямо над списком и установите текст в качестве заголовка. Он достигнет ваших потребностей.

Intereting Posts
Exoplayer – InvalidResponseCodeException (404), в то время как файл существует Переместить курсор в строку по одному из столбцов Android получить эскиз изображения, хранящегося на SD-карте, чей путь известен Как сохранить и получить путь к картинке Cropped Android с SD-карты? Как использовать writeStringArray () и readStringArray () в посылке Загрузка видео не удалась по телефонной связке html5 Как перейти к определенному виду с помощью ViewFlipper? Понимание isFinishing () Запись / запись внутреннего воспроизведения звука приложения Android и экспорт mp3? Получить контакт с производительностью Почему так громоздко передавать список объектов из одной активности в другую деятельность Можно ли отличить (в коде), был ли apk установлен через игру или вручную? Самый простой способ запустить веб-страницу в android с помощью значка Установить ширину Android Drawable? Фреска добавляет Bitmap в Cache программно