【问题标题】:Is it possible to change FloatingActionButton size at runtime programatically?是否可以在运行时以编程方式更改浮动操作按钮的大小?
【发布时间】:2016-05-19 10:38:03
【问题描述】:

我正在使用支持库中的FloatingActionButton。我注意到只能使用 app:fab_size="" 属性在 XML 中更改大小。

我查看了源代码,没有任何方法可以在应用运行时更改晶圆厂的大小。

我只是想根据用户输入在 MININORMAL 之间更改 fab 的大小,因此我需要以编程方式进行。

有没有人找到办法做到这一点?

【问题讨论】:

    标签: android android-support-library floating-action-button androiddesignsupport


    【解决方案1】:

    我认为 FloatingActionButton setSize() 方法可以满足您的需求。如果你有一个名为fabFloatingActionButton,你可以使用:

    fab.setSize(FloatingActionButton.SIZE_MINI);
    fab.setSize(FloatingActionButton.SIZE_NORMAL);
    

    【讨论】:

      【解决方案2】:

      这是不可能的。大小在FloatingActionButton 创建时确定,并在其生命周期内保持不变。没有允许动态更改大小的公共方法。当然,您可以使用java reflection 来访问私有sizepadding 字段并更改它们,但这是not a good 的想法。或者,您可以查看一些 3rd 方实现,它允许动态更改按钮的大小,例如 one

      【讨论】:

        【解决方案3】:

        你可以使用setCustomSize(),这个方法只是改变customSize属性,所以你必须在改变customSize后requestLayout。

        public void setCustomSize(@Px int size) {
            if (size < 0) {
                throw new IllegalArgumentException("Custom size must be non-negative");
            } else {
                this.customSize = size;
            }
        }
        

        下面的代码应该改变大小。

        fab.setCustomSize(size);
        fab.requestLayout(); 
        

        【讨论】:

          猜你喜欢
          • 2019-06-11
          • 1970-01-01
          • 2021-11-24
          • 2016-04-01
          • 1970-01-01
          • 2015-09-07
          相关资源
          最近更新 更多