【问题标题】: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