3

recyclerview の GridLayoutManager を使用して、アプリにカスタム ギャラリーを表示しています。ギャラリーのようなすべての機能を実装しました。しかし、私が立ち往生している小さなことがあります。1行に3枚の画像があります。しかし、画像間のスペースを減らす必要があります。そうしている間、3つ以上の画像を連続して表示したくありませんが、画像サイズ(必要な場合)は大きくなる可能性があります。

4

3 に答える 3

4

カスタムを使用できますRecyclerViewItemDecorator

public class RecyclerViewItemDecorator extends RecyclerView.ItemDecoration {
  private int spaceInPixels;

  public RecyclerViewItemDecorator(int spaceInPixels) {
    this.spaceInPixels = spaceInPixels;
  }

  @Override
  public void getItemOffsets(Rect outRect, View view, 
      RecyclerView parent, RecyclerView.State state) {
    outRect.left = spaceInPixels;
    outRect.right = spaceInPixels;
    outRect.bottom = spaceInPixels;

    if (parent.getChildLayoutPosition(view) == 0) {
        outRect.top = spaceInPixels;
    } else {
        outRect.top = 0;
    }
  }
}

次に、それをあなたに追加しますRecyclerView

// For example 10 pixels
int spaceInPixels = 10;
mRecyclerView.addItemDecoration(new RecyclerViewItemDecorator(spaceInPixels));

それが役に立てば幸い!

于 2016-03-28T08:13:18.783 に答える
1

これをリサイクラー ビューに使用し、

    this.mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3));
    this.mRecyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(getContext())
            .color(Color.DKGRAY)
            .build());
    this.mRecyclerView.addItemDecoration(new VerticalDividerItemDecoration.Builder(getContext())
            .color(Color.DKGRAY)
            .build());

各アイテムのレイアウト ファイルで、コンテナーの端に合うようにイメージを設定します。

例えば:

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/RlayoutGrid"
  android:layout_width="220dp"
  android:layout_height="170dp"
  android:background="@android:color/black">


    <ImageView
      android:id="@+id/prefence_imageButton"
      android:layout_width="match_parent"
      android:layout_height="170dp"
      android:background="@android:color/black"
      android:focusable="false"
      android:focusableInTouchMode="false"
      android:scaleType="fitXY"
      />

</RelativeLayout>

これをbuild.gradleに追加します

 compile 'com.yqritc:recyclerview-flexibledivider:1.2.4'
于 2016-03-28T06:37:41.187 に答える