亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

左右的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

老師這是什么情況,如何解決?


正在回答

2 回答

這個應該時屏幕平分所產生的吧?

0 回復 有任何疑惑可以回復我~

左邊Item

https://img1.sycdn.imooc.com//5cf78b88000161b112390678.jpg


中間Item

https://img1.sycdn.imooc.com//5cf78ba7000113d912100594.jpg

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

左右的item比中間的item多1px

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號