我已将ProgressBar
片段中的ContentLoadingProgressBar
替换为<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/simple_match_parent_style">
<android.support.v4.widget.ContentLoadingProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
<TextView
android:id="@+id/txt_no_songs"
android:text="@string/txt_no_songs"
android:layout_centerInParent="true"
style="@style/txt_no_songs"/>
<ListView
android:id="@+id/list"
android:fastScrollEnabled="true"
android:divider="@null"
style="@style/simple_match_parent_style"/>
</RelativeLayout>
。
现在片段布局如下所示:
onViewCreated
我在@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
progressBar = (ContentLoadingProgressBar) view.findViewById(R.id.progress);
progressBar.show();
...
}
中显示了这个ProgressBar:
progressBar.hide()
出于测试目的,我已经删除ContentLoadingProgressBar
调用以使ProgressBar出现在任何情况下。但问题是我的ContentLoadingProgressBar
从未真正展示过。
我应该做些其他事情来展示ContentLoadingProgressBar
吗?我没有设法找到使用{{1}}的任何相关示例,因此任何有用的示例也是可取的。提前谢谢。
答案 0 :(得分:19)
似乎你需要一种风格,例如......
style="?android:attr/android:progressBarStyleHorizontal"
无论如何,如果我把它放在那里,对我来说是合适的,没有我什么都看不到。
还要考虑将其置于您的内容之上(即在xml中的下方)
答案 1 :(得分:5)
我试过这个:
<android.support.v4.widget.ContentLoadingProgressBar
android:id="@+id/address_looking_up"
style="?android:attr/android:progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:visibility="visible" />
但是,它在Android 5.0上无效。有关ContentLoadingProgressbar的更多详细信息应该在这里。
PS:好的,'风格'的属性在这里很重要。将样式更改为“ ?android:attr / progressBarStyleLarge ”,它可以正常工作。
同时,此小部件的显示效果取决于您应用的主题。
答案 2 :(得分:0)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/simple_match_parent_style">
<TextView
android:id="@+id/txt_no_songs"
android:text="@string/txt_no_songs"
android:layout_centerInParent="true"
style="@style/txt_no_songs"/>
<ListView
android:id="@+id/list"
android:fastScrollEnabled="true"
android:divider="@null"
style="@style/simple_match_parent_style"/>
<android.support.v4.widget.ContentLoadingProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
style="?android:attr/progressBarStyleLarge"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</RelativeLayout>
答案 3 :(得分:0)
如果同时创建多个视图,请检查ContentLoadingProgressBar.onAttachedToWindow()
或ContentLoadingProgressBar.onDetachedToWindow()
,这可能导致private removeCallBacks()
或onAttachedToWindow()
中的onDetachedToWindow()
被调用。因此导致可运行对象无法运行,这意味着将不会显示任何内容。
例如,您可以:
只需删除private removeCallBacks()
或onAttachedToWindow()
中的onDetachedToWindow()
个呼叫。为了防止这种情况发生。不要忘记将private removeCallBacks()
改成public
并在onDestroyView()
中调用它以进行适当的清理。
答案 4 :(得分:0)
您应将样式添加到ContentLoadingProgressBar。
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:layout_height="wrap_content"/>