欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Android RecyclerView 間距全適配

 更新時間:2017年12月06日 09:59:11   作者:anonymoussf  
本篇文章主要介紹了淺談Android RecyclerView 間距全適配,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了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;
    }
  }
}

使用方法很簡單,上面注釋中也已經(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
      }
    }
  }
}

此處不僅對間距進行了處理,而且對spanCount也進行了處理,使用方法:

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • android仿微信支付寶的支付密碼輸入框示例

    android仿微信支付寶的支付密碼輸入框示例

    本篇文章主要介紹了android仿微信支付寶的支付密碼輸入框示例,具有一定的參考價值,有興趣的可以了解一下。
    2017-02-02
  • Android中用Bmob實現(xiàn)短信驗證碼功能的方法詳解

    Android中用Bmob實現(xiàn)短信驗證碼功能的方法詳解

    本文給大家分享通過第三方平臺Bmob實現(xiàn)發(fā)送驗證碼和校驗驗證碼的功能,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • Flutter 假異步的實現(xiàn)示例

    Flutter 假異步的實現(xiàn)示例

    這篇文章主要介紹了Flutter 假異步的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Android自定義開關(guān)按鈕源碼解析

    Android自定義開關(guān)按鈕源碼解析

    這篇文章主要為大家詳細解析了Android自定義開關(guān)源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android判斷wifi是5G還是2.4G

    Android判斷wifi是5G還是2.4G

    這篇文章給大家分享android區(qū)分wifi是5G還是2.4G的方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2016-12-12
  • 詳解Flutter Widget

    詳解Flutter Widget

    本文主要講解了Flutter Widget,它是是描述 Flutter UI 的基本單元,需要進一步了解的小伙伴可以參考一下這篇文章
    2021-08-08
  • Android常用對話框使用大全

    Android常用對話框使用大全

    我們隨處可見對話框,該怎么制作?這篇文章主要為大家詳細介紹了Android常用對話框使用大全,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android Timer使用的實例代碼

    Android Timer使用的實例代碼

    這篇文章介紹了Android Timer使用的實例代碼,有需要的朋友可以參考一下
    2013-10-10
  • Android之高德地圖定位SDK集成及地圖功能實現(xiàn)

    Android之高德地圖定位SDK集成及地圖功能實現(xiàn)

    本文主要介紹了Android中高德地圖定位SDK集成及地圖功能的實現(xiàn)。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • 自定義視圖view的折線圖使用講解

    自定義視圖view的折線圖使用講解

    這篇文章主要介紹了自定義視圖view的折線圖使用講解,前面幾章講解了繪圖的一些基本用法,本章就來看看折線圖吧,需要的朋友可以參考下
    2023-04-04

最新評論