2010-08-21 80 views
7

我想知道是否有任何方法使用我自己的drawable来定制标题 - 然后在标题布局中放置一个进度条,以便它像内置的android进度酒吧。自定义标题栏与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

+0

如果你能代替这个调用另一个,会为你的工作?因为您永远无法拥有任何其他标题功能的CUSTOM_TITLE。 – MahdeTo 2010-08-21 22:04:47

+0

我的意思是我可以制作自己的布局,并使用''在每个屏幕上包含我的标题 - 但由于我无法覆盖相关方法,因此我必须制作一种不同的方法来显示和隐藏我的自己的进度条 - 然后把它放在每个活动中。 好吧 - 现在我想起来了,我可以把它放在一个班级,只是打电话给那个班,但那还比我想做的还多。 – hwrdprkns 2010-08-21 22:45:18

回答

3

我相信唯一的方法就是使用自己的自定义标题栏。你可以重写android代码,因为它的开源代码 - 但这可能是一个坏主意。最好的办法是制作标题栏布局,并在所有其他布局中制作<include />,并可能有一个帮助程序类来显示和隐藏进度栏。

12

添加以下代码:

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. 

我已经在登录活动使用此,我的问题是,我跑最的登录异步,所以我有问题更新用户界面。但我确实得到了要显示的循环进度动画。

我有这样的工作,从TabActivity启动的Activity Intent内的异步调用中更新TabActivity。我不得不在TabActivity和被调用的Activity中放置“requestWind ...”行。另外我发现使用setProgress并没有太多的工作,但是整个时间里微调动画都是“旋转”的,所以我很开心。

+0

不适用于HTc愿望和HTc wilrfire 2.2.2 – ozmank 2012-04-26 09:48:31