php短視頻源碼之瀑佈流分割線左右間距問題及解決代碼
下面展示一下非瀑佈流的item佈局情況,每個item的高度都是一樣的,所以
他的index就是左右左右,position所對應的itemView就是準確的,
左0,右1,左2,右3,以此類推…
這時候我們可以用下面代碼即可成功設置分割線。
/** * 第一列設置左邊距為space,右邊距為space/2 (第二列反之) */ if (parent.getChildLayoutPosition(view) % 2 == 0) { outRect.left = space; outRect.right = space / 2; } else { outRect.left = space / 2; outRect.right = space; }
瀑佈流的position是根據列的高度哪個小而來加載下一個position在哪裡,
上面瀑佈流圖我們可以看到,左0,右1 之後,2到右邊瞭,那是因為
第二列的高度小於第一列的高度,所以就加載到第二列,以此類推,
下面的高度可以說就是隨機展示的,誰也不知道接下來要怎麼判斷分割線,
所以用上面的那些代碼是行不通的,
大招來瞭,我們可以通過StaggeredGridLayoutManager.LayoutParams
裡的getSpanIndex()來判斷,這個方法不管你高度怎樣,
他都是左右左右開始排列的,如下代碼。
StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); /** * 根據params.getSpanIndex()來判斷左右邊確定分割線 * 第一列設置左邊距為space,右邊距為space/2 (第二列反之) */ if (params.getSpanIndex() % 2 == 0) { outRect.left = space; outRect.right = space / 2; } else { outRect.left = space / 2; outRect.right = space; }
到此這篇關於php短視頻源碼之瀑佈流分割線左右間距問題及解決代碼的文章就介紹到這瞭,更多相關php短視頻源碼內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 使用RecyclerView實現瀑佈流高度自適應
- Android itemDecoration接口實現吸頂懸浮標題
- Android中使用itemdecoration實現時間線效果
- Android自定義ViewGroup多行多列效果
- Android實現文字消除效果