Baserecyclerviewadapterhelper: 求安慰

Created on 12 Sep 2018  ·  4Comments  ·  Source: CymChad/BaseRecyclerViewAdapterHelper

    public BaseViewHolder setGone(@IdRes int viewId, boolean visible) {
        View view = getView(viewId);
        view.setVisibility(visible ? View.VISIBLE : View.GONE);
        return this;
    }

这个代码是不是有点反人类,setGone(),还得false才有效,大神你是不是忘了写感叹号了。因为这个bug,导致我们损失了1000万用户,现在我和测试正在海投简历

Most helpful comment

BaseRecyclerViewAdapterHelper 是个很优秀、易用的库,作者也非常厉害。但是不得不说这个库的很多方法命名水平并不高。setGone就是最典型的一个例子,显然跟setVisible这个方法放在一起很容易用错:

  1. 可能不知道这个方法,而使用了setVisible以为设为 false 即为 GONE
  2. setGone设为 true 可能让人以为是隐藏掉该 view。如果想显示,为什么不用setVisible呢?

建议参考一下 kotlin 的一个扩展库,里面有个 view 的扩展属性:view.isVisible,为 true 时就是 VISIBLE,为 false 时就是 GONE;view.isGone,为 true 时就是 GONE,为 false 时就是 VISIBLE;view.isInvisible,为 true 时就是 INVISIBLE,为 false 时就是 VISIBLE。

再举个命名比较随意的例子:setNotDoAnimationCount这个方法名的NotDo感觉就很中式英语。个人觉得setNoAnimationCount更好些,或者setNotAnimateCount也还行。
希望 BRVAH 越来越好。

All 4 comments

BaseRecyclerViewAdapterHelper 是个很优秀、易用的库,作者也非常厉害。但是不得不说这个库的很多方法命名水平并不高。setGone就是最典型的一个例子,显然跟setVisible这个方法放在一起很容易用错:

  1. 可能不知道这个方法,而使用了setVisible以为设为 false 即为 GONE
  2. setGone设为 true 可能让人以为是隐藏掉该 view。如果想显示,为什么不用setVisible呢?

建议参考一下 kotlin 的一个扩展库,里面有个 view 的扩展属性:view.isVisible,为 true 时就是 VISIBLE,为 false 时就是 GONE;view.isGone,为 true 时就是 GONE,为 false 时就是 VISIBLE;view.isInvisible,为 true 时就是 INVISIBLE,为 false 时就是 VISIBLE。

再举个命名比较随意的例子:setNotDoAnimationCount这个方法名的NotDo感觉就很中式英语。个人觉得setNoAnimationCount更好些,或者setNotAnimateCount也还行。
希望 BRVAH 越来越好。

早知道 就不该更新 setGone(false)和setGone(true) 真的很费解

看了下,确实不舒服~

Was this page helpful?
0 / 5 - 0 ratings