是否可以更改 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 中每个片段的点指示器(活动和非活动)的颜色?

如何更改自定义轮播指示器背景颜色?

Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色

Flutter:在某个值上更改圆形进度指示器的颜色

更改 QCheckBox 指示器矩形颜色

UIPageViewController:每页更改页面指示器/页面控件的颜色