2016-06-17 10 views
0

こんにちは、誰かが何かを知っているのですか?私はスペースを制御するためにマージンを使用しようとしましたが、それは私の問題の正しい解決策ではないようです。recycleviewでイメージ間のスペースを削除するにはどうすればいいですか?

<android.support.v7.widget.RecyclerView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/galleryRecyclerView" 
    android:clipToPadding="false" 
    android:layout_below="@id/displayGalleryView" 
    android:longClickable="false" /> 

と画像のxml:

<ImageView 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:layout_marginLeft="-70dp" 
     android:id="@+id/imageGalleryView" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" /> 

私はスペースを制御するためにmarginLeftを使用し、それは私が他の機能を統合する前に、それはとても奇妙だ働いていました。

Image here

mRecyclerView = (RecyclerView) findViewById(R.id.galleryRecyclerView); 
    LinearLayoutManager layoutManager = new LinearLayoutManager(this); 
    layoutManager.setOrientation(layoutManager.HORIZONTAL); 
    RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT); 
    params.setMargins(0, 0, 0, 0); 
    layoutManager.canScrollHorizontally(); 
    mRecyclerView.setLayoutManager(layoutManager); 

    mRecyclerView.addItemDecoration(new RecyclerViewItemDecorator(1)); 

    RecyclerView.Adapter imageAdapter = new GalleryImageAdapter(mGalleryFolder); 
    mRecyclerView.setAdapter(imageAdapter); 

答えて

0

あなたはリサイクルビュー内の項目間のギャップを減らすことができます...

内部クラスとして使用します。

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; 
      } 
     } 
    } 

コール

list.addItemDecoration(新しいRecyclerViewItemDecorator(1))。

+0

は動作しませんでした、メソッドを追加したアダプタを設定する前に... – user2641733

+0

有効なパラメータを使用してください。コードがうまくいかない場合は、-intを指定してmargintopを使用してみてください。これがあなたに解決策を与えることを願っています。 –

+0

私はLinearLayoutManagerを使用しています! marginLeftですが、うまくいきません!私はViewPagerメソッドを試しています.. – user2641733

関連する問題