Я пытаюсь удалить индикатор прогресса после загрузки моих данных в фрагмент, содержащий ListView. Вот мой обработчик завершения:Не удается удалить или скрыть представление в Android
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
dataSource = (ArrayList<Map<String, Object>>) task.getResult();
PostAdapter adapter = new PostAdapter(getActivity(), dataSource);
ListView list = (ListView) rootView.findViewById(R.id.listView);
list.setAdapter(adapter);
View indicator = getActivity().findViewById(R.id.indicator);
RelativeLayout layout = (RelativeLayout) getActivity().findViewById(R.id.layout);
layout.removeView(indicator);
}
});
Последние 3 строки кода являются соответствующей частью. Все называется правильно, ничего нет и т. Д. В отладке все работает отлично. Адаптер также работает правильно, заполняя мой список, но индикатор все еще находится на экране. Я также попытался установить его видимость на GONE
или HIDDEN
, но они также не скрывают его. Я видел Android - Can't hide progress bar, но ответы включают setEmptyView()
, который я не использую в любом случае. Я использую тот же фрагмент (разумеется, другой экземпляр) на другой вкладке, и он работает правильно.
Вот мой файл макета:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="0dp"
android:background="#ffffffff"
android:id="@+id/layout">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"
android:layout_margin="0dp"
android:padding="0dp" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/indicator"
android:indeterminate="true"
android:layout_centerInParent="true" />
</RelativeLayout>
Что я делаю неправильно?
Хорошо, так, Вы отображения прогресса бар, чтобы опубликовать достигнутый прогресс, правильно? и вы хотите скрыть это, но вы не можете. Правильно ли я это понимаю? (: –
Я столкнулся с этой проблемой. У вас было одно имя «R.id.indicator» для разных фрагментов? Если да, можете ли вы попытаться переименовать другое имя для другого «R.id.indicator»? Пожалуйста, поделитесь результатом. –
@LittleChild да, точно. –