动态设置FAB锚点重力

问题描述 投票:4回答:2

我需要能够从代码中将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
2个回答
9
投票

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);

0
投票

Kotlin也是一样

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

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

© www.soinside.com 2019 - 2024. All rights reserved.