【问题标题】:set FAB anchor gravity dynamically动态设置 FAB 锚重力
【发布时间】:2016-06-26 14:37:16
【问题描述】:

我需要能够将 FAB 的 app:layout_anchorGravity="center" 从代码中的 center 更改为 bottom|start。 我找到了这个例子:

CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setAnchorId(xxxx);
fab.setLayoutParams(p);

但它是用于设置锚点而不是锚点重力。

【问题讨论】:

    标签: android android-layout floating-action-button


    【解决方案1】:

    CoordinatorLayout.LayoutParams 类有 anchorGravity 字段。例如:

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
    lp.anchorGravity = Gravity.BOTTOM | GravityCompat.START;
    fab.setLayoutParams(lp);
    

    【讨论】:

      【解决方案2】:

      在 Kotlin 中也是如此

              (rightUglyBox.layoutParams as CoordinatorLayout.LayoutParams)
                             .anchorGravity 
                                           = Gravity.CENTER_VERTICAL or Gravity.LEFT;
      

      *适用于所有布局,而不仅仅是 FAB

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        相关资源
        最近更新 更多