backport

技術ネタと野球とときどき雑談

RecyclerViewでアイテム間のmarginを指定する

2017/05/30
development Android

RecyclerViewでアイテム間のmarginを指定したいときはItemDecorationを使いましょう。 XMLにそれっぽい属性があるはず、とか思いこむとハマります。

public class CustomItemDecoration extends RecyclerView.ItemDecoration {

	private int space;

	public CustomItemDecoration(int space) {
		this.space = space;
	}

	public static CustomItemDecoration createDefaultDecoration(Context context) {

		int spacingInPixels = context.getResources().getDimensionPixelSize(R.dimen.item_margin);
		return new CustomItemDecoration(spacingInPixels);
	}

	@Override
	public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

		outRect.top = space;
		outRect.left = space;
		outRect.right = space;
		outRect.bottom = space;
	}
}

みたいな感じで独自のItemDecorationクラスを実装します。この例だと上下左右に同じ大きさのmarginが指定されます。

あとはRecyclerViewにセットしてあげればOK。

mRecyclerView.addItemDecoration(SpacesItemDecoration.createDefaultDecoration(this));

RecyclerViewは柔軟だけど覚えなきゃいけないことが多くて大変。凝ったことしないときはあえてListViewを使うのも手ですね。

参考情報



コメント欄を表示する

おススメ

WEB+DB PRESS総集編[Vol.1~102] (WEB+DB PRESS plusシリーズ)

知識の幅を広げたい人は必携

【防水進化版 IPX6対応】SoundPEATS(サウンドピーツ) Q30 Bluetooth イヤホン 高音質 [メーカー1年保証] 低音重視 8時間連続再生 apt-Xコーデック採用 人間工学設計 マグネット搭載 CVC6.0ノイズキャンセリング マイク付き ハンズフリー通話 ブルートゥース イヤホン IP66防塵防水 ワイヤレス イヤホン Bluetooth ヘッドホン (ブラック)

ワイヤレスはやっぱり便利

Kindle Paperwhite Wi-Fi、ブラック

読みたいときに読みたい本を読めるのが嬉しい

超小型65W ノートPC汎用 ACアダプター FINsix ”Dart” (シルバー)超軽量85g 11種類の変換プラグで1000機種以上のノートPCに対応 USB5V出力付きでPCとスマホ同時充電 ※必ずご使用のPCとの互換性をご確認ください。『PSE認証済』

持ち運びに最適な小型軽量ACアダプタ