国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

淺談Android RecyclerView 間距全適配

2019-12-12 01:31:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文介紹了Android RecyclerView 間距全適配,分享給大家,具體如下:

LinearLayoutManager spacing

import android.graphics.Rect;import android.support.v7.widget.RecyclerView;import android.view.View;/** * Created by anonymous on 2016/9/9 0009. * <p> * SpacesItemDecoration * <p> * mRecyclerView.addItemDecoration(new SpacesItemDecoration(5)); */public class SpacesItemDecoration extends RecyclerView.ItemDecoration {  private int space;  public SpacesItemDecoration(int space) {    this.space = space;  }  @Override  public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {    outRect.left = space;    outRect.right = space;    outRect.bottom = space;    // Add top margin only for the first item to avoid double space between items    if (parent.getChildLayoutPosition(view) == 0) {      outRect.top = space;    } else {      outRect.top = 0;    }  }}

使用方法很簡(jiǎn)單,上面注釋中也已經(jīng)給出:

mRecyclerView.addItemDecoration(new SpacesItemDecoration(5));

GridLayoutManager or StaggeredGridLayoutManager spacing

import android.graphics.Rect;import android.support.v7.widget.RecyclerView;import android.view.View;/** * Created by anonymous on 2016/9/9 0009. * <p> * GridSpacingItemDecoration * <p> * int spanCount = 3; // 3 columns * int spacing = 50; // 50px * boolean includeEdge = false; * recyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, includeEdge)); */public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {  private int spanCount;  private int spacing;  private boolean includeEdge;  public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {    this.spanCount = spanCount;    this.spacing = spacing;    this.includeEdge = includeEdge;  }  @Override  public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {    int position = parent.getChildAdapterPosition(view); // item position    int column = position % spanCount; // item column    if (includeEdge) {      outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing)      outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing)      if (position < spanCount) { // top edge        outRect.top = spacing;      }      outRect.bottom = spacing; // item bottom    } else {      outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing)      outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f /  spanCount) * spacing)      if (position >= spanCount) {        outRect.top = spacing; // item top      }    }  }}

此處不僅對(duì)間距進(jìn)行了處理,而且對(duì)spanCount也進(jìn)行了處理,使用方法:

    int spanCount = 3; // 3 columns    int spacing = 50; // 50px    boolean includeEdge = false;    mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, includeEdge));

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 清水河县| 屏东县| 若羌县| 平南县| 璧山县| 杭州市| 皮山县| 麻城市| 潼南县| 罗田县| 咸宁市| 炉霍县| 淮北市| 遂川县| 九台市| 军事| 宁乡县| 天台县| 柳林县| 和静县| 仙桃市| 呼伦贝尔市| 揭阳市| 阿坝| 忻州市| 浦江县| 城口县| 沿河| 佛山市| 枣阳市| 甘肃省| 屏东市| 滨州市| 青川县| 韶山市| 视频| 清远市| 金塔县| 灵璧县| 华宁县| 永春县|