首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用不确定的ProgressBar替换ActionBar菜单项图标

用不确定的ProgressBar替换ActionBar菜单项图标
EN

Stack Overflow用户
提问于 2011-08-22 10:49:38
回答 6查看 13.4K关注 0票数 18

我想添加一个不确定的进度条到蜂巢ActionBar,以便任何时候用户按下“刷新”,刷新图标暂时变成一个不确定的进度条,直到任务完成。电子邮件应用已经做到了这一点,但我想不出是怎么做到的。

有什么建议吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-08-22 11:45:19

很难说电子邮件应用程序是如何做到这一点的,但您可能希望保持简单,只使用StateDrawable XML文件的id调用setIcon,然后使用计时器更改状态。

票数 5
EN

Stack Overflow用户

发布于 2012-11-11 16:07:44

要阐明Jon O的答案,关键是在刷新操作上设置和取消设置操作视图。这在ActionBarSherlock和本机4.x操作栏中都有效。下面的代码片段将把进度不确定视图放在刷新图标的顶部,假设刷新菜单项具有ID 'refresh_option‘,而替换布局(具有ProgressBar)位于布局’progress _ will‘中:

代码语言:javascript
复制
 MenuItem item = abmenu.findItem(R.id.refresh_option);
 LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 View abprogress = inflater.inflate(R.layout.progress_wheel, null);
 item.setActionView(abprogress);

取消设置进度视图,刷新图标将返回可见性:

代码语言:javascript
复制
 item.setActionView(null);

请参见github上的a more detailed example

票数 19
EN

Stack Overflow用户

发布于 2014-07-31 19:16:45

为了简化larham1's answer:你甚至不需要膨胀新的动作视图本身,因为MenuItemthe method,它接受动作布局的id,所以你可以简单地写:

代码语言:javascript
复制
item.setActionView(R.layout.progress_bar);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7142722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档