Android View 上下左右四种间距的设置方法

RecyclerView控件大家肯定不陌生,已经应用有一段时间了,最近在项目中写一个GridLayout样式的RecyclerView时需要设置,item之间左右的间距,下面是我总结的一个设置间距的方法分享给大家。

下面是没间距的情况

想要设置item之间的间距需要自己创建一个继承自RecyclerView.ItemDecoration的类

public class RecyclerViewSpacesItemDecoration extends RecyclerView.ItemDecoration {

   private HashMap<String, Integer> mSpaceValueMap;

   public static final String TOP_DECORATION = "top_decoration";
   public static final String BOTTOM_DECORATION = "bottom_decoration";
   public static final String LEFT_DECORATION = "left_decoration";
   public static final String RIGHT_DECORATION = "right_decoration";
?
   public RecyclerViewSpacesItemDecoration(HashMap<String, Integer> mSpaceValueMap) {
       this.mSpaceValueMap = mSpaceValueMap;
   }
?
   @Override
   public void getItemOffsets(Rect outRect, View view,
                               RecyclerView parent, RecyclerView.State state) {
       if (mSpaceValueMap.get(TOP_DECORATION) != null)
           outRect.top = mSpaceValueMap.get(TOP_DECORATION);
       if (mSpaceValueMap.get(LEFT_DECORATION) != null)

           outRect.left = mSpaceValueMap.get(LEFT_DECORATION);
       if (mSpaceValueMap.get(RIGHT_DECORATION) != null)
           outRect.right = mSpaceValueMap.get(RIGHT_DECORATION);
       if (mSpaceValueMap.get(BOTTOM_DECORATION) != null)

           outRect.bottom = mSpaceValueMap.get(BOTTOM_DECORATION);

   }

}
下面是 设置RecyclerView间距的关键方法
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.TOP_DECORATION,50);//top间距

stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION,100);//底部间距

stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION,50);//左间距

stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION,100);//右间距

mRecyclerView.addItemDecoration(newRecyclerViewSpacesItemDecoration(stringIntegerHashMap));

可以根据自己的实际情况去设置想要的间距,也可以去单独设置
下面是设置间距后的效果图

时间: 2024-07-30 13:52:57

Android View 上下左右四种间距的设置方法的相关文章

Android数据的四种存储方式之SharedPreferences

除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/< >/shared_prefs目录下.SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现.实现SharedPreferences存储的步骤如下: 一.根据Context获取SharedPreferences对象 二.利用edi

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File 之 —— SQLite

本文在http://www.cnblogs.com/wisekingokok/archive/2011/09/14/2174844.html 基础上写了一个进阶的创建方式,技术能用新的就用新的. 参考了http://blog.csdn.net/liuhe688/article/details/6715983.仅供学习参考 SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大

[转][Android]Android数据的四种存储方式

android.database.sqlite类 SQLiteQueryBuilder java.lang.Object android.database.sqlite.SQLiteQueryBuilder public class SQLiteQueryBuilderextends Object This is a convience class that helps build SQL queries to be sent to SQLiteDatabase objects. 构造方法摘要

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Pro

Android的按钮四种点击事件

本文记录一下按钮的四种点击事件 第一种 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //------------第一种---------------------- Button

Android数据的四种存储方式

很清晰的思路,转自Android数据的四种存储方式 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider. SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用

Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。

Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags(); 一.Android Activity 四种启动模式 lunchMode 在Manifest 配置文件中的属性如下: (1) android:launchMode="standard" (2)android:launchMode="singleTop" (3)android:launchMode="singleTask" (4)andro

Android数据的四种存储方式之SQLite数据库

Test.java: /** * 本例解决的问题: * 核心问题:通过SQLiteOpenHelper类创建数据库对象 * 通过数据库对象对数据库的数据的操作 * 1.sql语句方式操作SQLite数据库 * 2.谷歌提供的api对SQLite数据库的操作 * 3.SQLite对事务的操作 */ import com.ghsy.createsqlitedb.db.MyOpenHelper; import android.content.ContentValues; import android.

转载 android activity的四种加载模式

Activity的四种加载模式 -- singleTask 和 singleInstance模式 2011-11-02 21:23:30 分类: 嵌入式 Activity的启动模式可以通过AndroidManifest.xml文件中的<activity>元素的属性来指定,一共有4中模式:   <activity android:name="ActivityMain" android:launchMode="singleTask"></a