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