5

3列の単純なGridLayoutを作成しようとしていますが、3列を取得しても行間に奇妙なギャップが生じます。したがって、空の1行よりも3つの画像が連続して取得されます(上の行(画像がある)の高さに一致する高さがあるようです)、次に3つの画像の行、奇妙なギャップ...など.ブランク ギャップよりも取得します。このブランク ギャップを削除するにはどうすればよいですか?リサイクラー ビューで wrap_content を layout_height に設定しようとしましたが、フラグメントは役に立ちませんでした。これは私のコードです:

    final GridLayoutManager layoutManager = new GridLayoutManager(this,3);
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(adapter);

これはアクティビティの xml です。

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.adriagate.adriagateonlineandroid.activities.ImagesActivity">


<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragmentImagesHeader"
    android:name="com.adriagate.adriagateonlineandroid.fragments.ImagesHeader"
    tools:layout="@layout/fragment_images_header" android:layout_width="match_parent"
    android:layout_height="match_parent" >
</fragment>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragmentImagesGrid"
    android:name="com.adriagate.adriagateonlineandroid.fragments.ImagesList"
    tools:layout="@layout/fragment_images_list" android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</fragment>
   </RelativeLayout>  

このレイアウトには、次のレイアウトを持つ fragmentImagesGrid という重要なフラグメントがあることに注意してください。

   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.adriagate.adriagateonlineandroid.fragments.ImagesList">

    <android.support.v7.widget.RecyclerView
      android:id="@+id/recycler_view_images"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
     tools:listitem="@layout/recycler_view_images_one_row"
    >

</FrameLayout>

これは、リサイクラー ビュー内の 1 つの要素のレイアウトです。

   <?xml version="1.0" encoding="utf-8"?>
     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
        xmlns:tools="http://schemas.android.com/tools"
      >

<ImageView
    android:id="@+id/imageViewImagesAllOneRow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    tools:src="@drawable/slika_200_200"
    />

   </FrameLayout> 

この画像に見られるこの空白のギャップは望ましくありません

4

1 に答える 1

1

画像のサイズが異なるために発生しているようです。アイテムをLinearLayoutに変更し、そのレイアウトの高さと幅を match_parent に設定します。gravity="center"を設定します (線形レイアウトの場合)。別の問題はandroid:layout_height="wrap_content"です。height プロパティを wrap_content に設定すると、RecyclerView がうまく機能しません。それでもwrap_contentでRecyclerViewを使用したい場合は、このソリューションをチェックしてください

于 2016-01-02T17:10:23.147 に答える