我想知道是否有任何方法可以使用我自己的drawable来设置自定义标题 - 然后在标题布局中放置一个进度条,使其像内置的android进度条一样。
在我的代码中 - 我希望能够调用setProgressBarIndeterminateVisibility(true)
并在我的自定义标题栏中显示进度条。
这可能吗?
我已经设置了我的应用程序主题,以便它使用自定义标题 - 但我不知道如何或在何处将进度条放在该布局中。
提前致谢。
编辑:现在我使用我自己的主题,看起来像这样:
<style parent="android:Theme.Light.NoTitleBar" name="BaseTheme">
<item name="android:windowBackground">@drawable/splash_bg</item>
<item name="android:windowTitleStyle">@style/TitleBackground</item>
</style>
标题背景样式为:
<style name="TitleBackground" parent="android:WindowTitleBackground">
<item name="android:background">@drawable/title_bar</item>
</style>
给每个人一个更好的主意 - 就像这样。
答案 0 :(得分:12)
在任何其他代码之前在onCreate中添加此代码:
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
requestWindowFeature(Window.FEATURE_PROGRESS);
setProgress(xx); // Then use this to update the progress to xx amount
打开/关闭使用
setProgressBarIndeterminateVisibility(false); //true to turn on.
我在登录Activity中使用过这个,我的问题是我运行了大部分登录异步,所以我在更新UI时遇到了问题。但我确实要显示循环进度动画。
我有一个TabActivity正在从TabActivity启动的Activity Intent中的异步调用中更新。我必须在TabActivity和被调用的Activity中放入“requestWind ....”行。另外我发现使用setProgress并没有做太多,但是旋转器动画一直在“旋转”,所以我很高兴。
答案 1 :(得分:4)
以下是如何使用进度指示器实现自定义标题栏的一个很好的示例:
http://downloadandroid.info/2010/08/creating-a-custom-titlebar/
我的解决方案是创建一个ActivityHelper类,它扩展Activity并包含此方法以及打开或关闭进度条的方法,然后从我的每个活动中扩展该类。
答案 2 :(得分:3)
我认为唯一的方法就是使用自己的自定义标题栏。你可以在开源之后覆盖android代码 - 但这可能是一个坏主意。最好的办法是在所有其他布局中创建一个标题栏布局并且只有<include />
,并且可能有一个帮助类来显示和隐藏进度条。
答案 3 :(得分:0)
在较新版本中,requestWindowFeature的技术不起作用。更好的选择是使用谷歌提供的v7.widget.toolbar。以下链接提供了有关如何使用它的详细信息。
http://developer.android.com/training/appbar/setting-up.html