[英]Custom Title Bar with Progress in Android
我想知道是否有任何方法可以使用我自己的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>
给每个人一个更好的主意 - 这样的事情。
在任何其他代码之前在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并没有做太多,但是旋转器动画一直在“旋转”,所以我很开心。
以下是如何使用进度指示器实现自定义标题栏的一个很好的示例:
http://downloadandroid.info/2010/08/creating-a-custom-titlebar/
我的解决方案是有一个ActivityHelper类,它扩展了Activity并包含了这个方法以及一个打开或关闭进度条的方法,然后从我的每个活动中扩展该类。
我相信唯一的方法是使用自己的自定义标题栏。 你可以在开源之后覆盖android代码 - 但这可能是一个坏主意。 最好的办法是制作一个标题栏布局,并在所有其他布局中只<include />
,并且可能有一个帮助类来显示和隐藏进度条。
在较新的版本中,requestWindowFeature的技术将不起作用。 更好的选择是使用谷歌提供的v7.widget.toolbar。 以下链接提供了有关如何使用它的正确详细信息。
http://developer.android.com/training/appbar/setting-up.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.