2013-08-08 4 views
5

Я разрабатываю следующий экранКак показать заголовок ListView, когда его пустой

enter image description here

В fourboxes рядом друг с другом находятся кнопки. При нажатии кнопок я меняю адаптер списка.

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

myPollsList = (ListView) findViewById(R.id.listArea); 
myPollsList.addHeaderView(getLayoutInflater().inflate(R.layout.profile_listview_header, null)); 

Теперь я хочу показать некоторое представление, когда список пуст. Но если я это сделаю, заголовок также исчезнет.

Я использую это в Activity, а не ListActivity. Любые предложения или обходные пути для показа заголовка, даже если список пуст?

EDIT: обратитесь к моему более раннему вопросу здесь ListView not getting space to show content on smaller screens. Здесь кто-то предложил мне решить проблему, поставив ее как заголовок

ответ

11

Так вот как я решил это. У меня был пользовательский адаптер, который был подключен к списку. Когда он обнаружил, что у него есть нулевые элементы для отображения. Это добавит ложный пустой вид в качестве элемента в список.

+0

Работает отлично. – kentarosu

+3

Aghhh ... Все эти хаки мы должны сделать, чтобы сделать что-то, что должно быть основной функциональной работой! Это сводит меня с ума! –

0

Не используйте верхние макеты кнопки в качестве заголовка для просмотра списка.

Итак, чтобы настроить пользовательский интерфейс без использования веса заголовка списка.

Дайте родительскую линейную сумму весового макета как 4 и 1, 1 в начало Макеты и 2 для просмотра списка.

+0

Будет ли это уменьшать высоту верхних макетов? – MarutiB

+0

Да, он будет регулировать их как изменения размера экрана. – sandy

+0

Это не то, что я хочу. Я хочу, чтобы высота была одинаковой для всех устройств. Вот почему я выбрал маршрут заголовка так, чтобы высота заголовка оставалась фиксированной. А остальную часть списка можно прокрутить вниз – MarutiB

23

Я нашел простое решение этой проблемы. Если нет элементов для списка, и вы не добавляете адаптер, просто добавьте это:

mListView.setAdapter(null); 

и заголовок появится. Это проще, чем добавление пустого/поддельного элемента в список.

+2

Это действительно помогло мне. благодаря ! – MetaSnarf

+0

благодарит свою работу за меня после добавления этих строк после метода addHeaderView() –

Смежные вопросы