左右的item比中間的item多1px
老師,你好,根據(jù)這樣來寫,我發(fā)現(xiàn)左右的item和中間的item大小不一樣。
GridSpaceItemDecoration 類
public?class?GridSpaceItemDecoration?extends?RecyclerView.ItemDecoration?{ ????private?int?mSpace; ????public?GridSpaceItemDecoration(int?space,?RecyclerView?parent)?{ ????????mSpace?=?space; ????????getRecyclerViewOffsets(parent); ????} ????/** ?????*?這個方法每次都會被調(diào)用 ?????*?@param?outRect?Item?的矩形邊界 ?????*?@param?view??ItemView ?????*?@param?parent?RecyclerView ?????*?@param?state?RecyclerView的狀態(tài) ?????*/ ????@Override ????public?void?getItemOffsets(@NonNull?Rect?outRect,?@NonNull?View?view,?@NonNull?RecyclerView?parent,?@NonNull?RecyclerView.State?state)?{ ????????super.getItemOffsets(outRect,?view,?parent,?state); ????????outRect.left?=?mSpace; ????} ????private?void?getRecyclerViewOffsets(RecyclerView?parent){ ????????//?View?margin, ????????//?margin?為正,則?View?會距離邊界產(chǎn)生一個距離 ????????//?margin?為負,則?View?會超出邊界產(chǎn)生一個距離 ????????LinearLayout.LayoutParams?layoutParams?=?(LinearLayout.LayoutParams)?parent.getLayoutParams(); ????????layoutParams.leftMargin?=?-mSpace; ????????parent.setLayoutParams(layoutParams); ????} }
通過 layout inspector 工具,分析圖片可以看出:
1. 左邊的item
2. 中間的item
進一步分析發(fā)現(xiàn)是:左右兩邊的 WEqualsHImageView 寬度比中間的要寬1px
老師這是什么情況,如何解決?
2019-09-04
這個應(yīng)該時屏幕平分所產(chǎn)生的吧?
2019-06-05
左邊Item
中間Item