如何创建浮动操作按钮?

时间:2016-02-17 17:37:57

标签: java android

在使用android开发人员提供的浮动操作按钮时,我无法帮助,但想知道他们究竟是如何从头开始实现浮动操作按钮的。

1)我想知道浮动动作按钮是如何构建的

2)android如何才能使加号成为其他东西?

这可能是其他帖子的重复,但我已经检查过,似乎找不到任何帖子提出同样的问题。如果您找到一个提出类似问题的人,请告诉我。

我的帖子与帖子不同:How can I add the new "Floating Action Button" between two widgets/layouts因为上面的帖子只解释了如何使用android FAB库,并没有解释如何从头开始创建FAB。

1 个答案:

答案 0 :(得分:0)

FloatingActionButton类主要扩展VisibilityAwareImageButton,扩展imagebutton。所以,从头开始,你应该从扩展图像按钮开始。然后,当您获得VisibilityAwareImageButton时,您可以创建FloatingButton课程。 VisibilityAwareImageButton的代码如下所示

package android.support.design.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageButton;

class VisibilityAwareImageButton extends ImageButton {

private int mUserSetVisibility;

public VisibilityAwareImageButton(Context context) {
    this(context, null);
}

public VisibilityAwareImageButton(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}

public VisibilityAwareImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    mUserSetVisibility = getVisibility();
}

@Override
public void setVisibility(int visibility) {
    internalSetVisibility(visibility, true);
}

final void internalSetVisibility(int visibility, boolean fromUser) {
    super.setVisibility(visibility);
    if (fromUser) {
        mUserSetVisibility = visibility;
    }
}

final int getUserSetVisibility() {
    return mUserSetVisibility;
}
} 

他们如何创建浮动按钮:

源代码可以在谷歌的以下链接中找到

https://android.googlesource.com/platform/frameworks/support/+/master/design/src/android/support/design/widget/FloatingActionButton.java?autodive=0%2F%2F

VisibilityAwareImageButton代码来自以下链接 https://github.com/android/platform_frameworks_support/blob/master/design/base/android/support/design/widget/VisibilityAwareImageButton.java