我需要能够从代码中将FAB的app:layout_anchorGravity="center"
从“center”更改为“bottom | start”。我发现了这个例子:
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setAnchorId(xxxx);
fab.setLayoutParams(p);
但它是用于设置锚而不是锚重力。
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);
Kotlin也是一样
(rightUglyBox.layoutParams as CoordinatorLayout.LayoutParams)
.anchorGravity
= Gravity.CENTER_VERTICAL or Gravity.LEFT;
*适用于所有布局而不仅仅是FAB