【发布时间】:2015-05-23 20:50:31
【问题描述】:
在将数据加载到涉及 ListView 的片段中后,我试图删除进度指示器。这是我的完成处理程序:
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 是的,没错。
-
@Rollno1 我已经搜索了整个项目。在任何地方都没有其他名为
indicator的资源。 -
你能把你的 layout.xml 添加到你的问题中吗?也许会有所帮助。
标签: android android-fragments android-4.0-ice-cream-sandwich android-progressbar