是否可以更改 Wicket 活动指示器的颜色?
Posted
技术标签:
【中文标题】是否可以更改 Wicket 活动指示器的颜色?【英文标题】:Is it possible to change the color of Wicket's activity indicator? 【发布时间】:2011-08-05 15:53:46 【问题描述】:情况:我正在与 Wicket 的IndicatingAjaxButton
合作。我在黑色背景的页面上设置了按钮。当用户按下按钮时,按钮的活动指示灯熄灭并旋转,直到系统准备好继续前进。
问题:由于黑色背景,指示器看起来很糟糕。由于部分指示器以黑色动画显示,因此使用黑色背景上的指示器会丢失一些细节。
问题:是否可以在 Wicket 中更改 IndicatingX
[按钮、链接等] 的颜色,还是我必须以新的方式设计我的页面?
【问题讨论】:
【参考方案1】:这是不可能的。好吧,不是以编程方式。
Wicket 的活动指示器/颤动器/微调器实际上只不过是一个动画 GIF。它位于
[your version of Wicket here]\wicket-src\wicket\src\main\java\org\apache\wicket\ajax\indicator.gif
和referenced in AbstractDefaultAjaxBehavior
。
要更改颜色,您可以创建自己的相同大小的动画 GIF,并覆盖默认分发中包含的动画。
编辑: 好的,在写完之后我认为“必须有免费的图标可用”并通过谷歌图片搜索想出了这个:
http://blogs.msdn.com/blogfiles/gduthie/WindowsLiveWriter/Needananimatedloadingicon_B811/ajax-loader_2.gif
我认为它是免费且不受限制的,但我没有仔细检查。如果您将其用于个人玩具/示例应用程序以外的任何用途,则应自行检查。
【讨论】:
【参考方案2】:因此,借助 Torgamus 勋爵提供的内容,您可以添加这样的类:
abstract class OnBlackIndicatingAjaxButton extends AjaxButton implements
IAjaxIndicatorAware
private final AjaxIndicatorAppender indicatorAppender = new
AjaxIndicatorAppender()
@Override
protected CharSequence getIndicatorUrl()
return "http://blogs.msdn.com/blogfiles/gduthie/WindowsLiveWriter/Needananimatedloadingicon_B811/ajax-loader_2.gif";
;
public OnBlackIndicatingAjaxButton(String id)
super(id);
add (indicatorAppender);
public OnBlackIndicatingAjaxButton(String id, Form<?> form)
super(id, form);
add (indicatorAppender);
/**
* @see IAjaxIndicatorAware#getAjaxIndicatorMarkupId()
* @return the markup id of the ajax indicator
*
*/
public String getAjaxIndicatorMarkupId()
return indicatorAppender.getMarkupId();
并将其用于您的任何页面。
【讨论】:
以上是关于是否可以更改 Wicket 活动指示器的颜色?的主要内容,如果未能解决你的问题,请参考以下文章
如何更改 viewpager 中每个片段的点指示器(活动和非活动)的颜色?