我最近在使用 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/