android - VisibilityAwareImageButton 用法

标签 android android-layout android-design-library

我最近在使用 ImageButtons 时遇到了这种新型的 ImageButton“VisibilityAwareImageButton”。如果有人能告诉我这个 ImageButton 的用法以及它与常规 ImageButton 有何不同,那将非常有帮助?提前致谢:)

最佳答案

这是 VisibilityAwareImageButton 的完整源代码。

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

它看起来与常规 ImageButton 几乎完全相同,只是它跟踪用户实际设置的最后可见性。我能找到的唯一用法是在 FloatingActionButton 中资源。它用于在执行自己的内部更改和动画时跟踪用户希望 View 的可见性。即

if (child.getUserSetVisibility() != VISIBLE) {
    // The view isn't set to be visible so skip changing it's visibility
    return false;
}

它位于设计支持库中并具有包可见性,因此 Google 似乎打算在内部使用它(目前似乎仅用于 FAB 实现)。

关于android - VisibilityAwareImageButton 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518594/

相关文章:

android - AppBarLayout 没有响应 fragment 中的滚动

android - 通过滚动隐藏后以编程方式显示工具栏(Android 设计库)

android - 更改屏幕大小(牛轧糖)

android - Cordova 3.4 - 检测键盘事件

Android 布局 - ListView 内 3 个 TextView 的布局

android - 如何在电子商务应用程序中将 ListView 项目显示为项目?

Android Studio gradle 错误

android - 将通用列表传递到 <include>

java - 是否可以动态更改 Switch 小部件的 ON 颜色?

android - 向 CollapsingToolbarLayout 添加褪色稀松布