我正在编写一个返回可见性的函数 - 但我正确地得到了:
必须是以下之一:View.VISIBLE,View.INVISIBLE,View.GONE less ...
代码:
private int getVisibilityForGlobalAndLocal(final boolean global, final boolean local) {
if (global) {
return View.GONE;
}
return local ? View.VISIBLE : View.INVISIBLE;
}
当像这样使用时:
view.setVisibility(getVisibilityForGlobalAndLocal(true,false));
不幸的是@Visibility注释隐藏在View:
中/** @hide */
@IntDef({VISIBLE, INVISIBLE, GONE})
@Retention(RetentionPolicy.SOURCE)
public @interface Visibility {}
现在我可以复制这部分(工作),但感觉很糟糕。我在这里缺少更优雅的解决方案吗?我应该将此作为错误提交吗?
答案 0 :(得分:5)
能够使用@Visibility注释肯定会很好,但看起来我们现在还不能。
在此期间,您可以在调用setVisibility的方法上方添加@SuppressWarnings(" ResourceType")注释以抑制lint错误
@SuppressWarnings("ResourceType")
public void myMethod()
{
view.setVisibility(getVisibilityForGlobalAndLocal(true,false));
}