自定义标题栏,包含Android的进展

时间:2010-08-21 19:13:45

标签: android user-interface

我想知道是否有任何方法可以使用我自己的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>

给每个人一个更好的主意 - 就像这样。 alt text

4 个答案:

答案 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。以下链接提供了有关如何使用它的详细信息。

Setting up the Actionbar

http://developer.android.com/training/appbar/setting-up.html