ViewGroup 默认顺序绘制子 View,如何修改?什么场景

2020-07-18  本文已影响0人  菜鸟何时起飞

文章地址:https://mp.weixin.qq.com/s/G3BKLbu1gjIIf8-qY6DFBg

@Override
protected int getChildDrawingOrder(int childCount, int i) {
  View view = getLayoutManager().getFocusedChild();
  if (null == view) {
    return super.getChildDrawingOrder(childCount, i);
  }
  int position = indexOfChild(view);
  if (position < 0) {
    return super.getChildDrawingOrder(childCount, i);
  }
  if (i == childCount - 1) {
    return position;
  }
  if (i == position) {
    return childCount - 1;
  }
  return super.getChildDrawingOrder(childCount, i);
}

文章中的这种实现 其实是把获取焦点的item与最后一个item的绘制顺序替换了,也会导致最后一个item的绘制顺序跟原有的item的绘制顺序也会变化,所以如果只是想把指定的item放到最后绘制,还是需要每个index都要重新计算的。

上一篇 下一篇

猜你喜欢

热点阅读