2013-11-19 5 views
0

У меня есть вертикальный LinearLayout и Listview и большая кнопка внутри. Все внутри Фрагмента.Пустой список в фрагменте

Что я хочу сделать, это показать пустой список, если после выполнения какого-либо действия ничего не найдено.

Поскольку это фрагмент не ListActivity, я не могу использовать концепцию пустого представления внутри ListView для отображения, когда список пуст.

Я использую этот код, чтобы показать пустой список (называемый в (MyFragment расширяет фрагмент) -> onCreateView метод):

ListView list2=(ListView)rootView.findViewById(R.id.scans_list); 
View emptyView = inflater.inflate(R.layout.scanslist_empty,null); 
((ViewGroup)list2.getParent()).addView(emptyView, 0); 
list2.setEmptyView(emptyView); 

Это работает, но в то время как первоначально список выше кнопки, пустой список находится ниже кнопки. Может ли это быть исправлено или мне нужно изменить весь подход?

+0

Я не понимаю, почему вы используете addView – Blackbelt

ответ

11

Добавить emptyView (TextView, ImageView, любой View реализации вы хотите) в макете фрагмента, сделать его visible="gone" и использовать, что вместо того, что вы в настоящее время. Таким образом, код должен изменить это:

ListView list2=(ListView)rootView.findViewById(R.id.scans_list); 
View emptyView = rootView.findViewById(R.id.my_empty_view); 
list2.setEmptyView(emptyView); 

Таким образом, когда проверки адаптера if it's empty, то ListView будет автоматически изменять свою видимость GONE и пустой взгляд, если она существует (в вашем случае, правда), будет установлено значение VISIBLE.

+0

Работает как шарм !!! Даже layout_weights в порядке. Спасибо. –

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