2016-12-18 13 views
1

私はリサイクラを使った簡単なレイアウトです。私はアダプタでそれをフィードし、リサイクラーのためにGridLayoutManagerを設定します。RecyclerViewとGridLayoutManager - レイアウトアイテム

<android.support.v7.widget.RecyclerView 
android:id="@+id/scripts_recycler_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_marginBottom="50dp" 
android:verticalSpacing="20dp" 
android:clipToPadding="false" 
android:orientation="vertical" 
app:layoutManager="android.support.v7.widget.GridLayoutManager" 
tools:listitem="@layout/tmpl_script" 
android:paddingBottom="20dp" 
android:layout_marginEnd="20dp" 
android:layout_marginRight="20dp" 
android:paddingTop="30dp" 
app:layout_gravity="center" /> 

活動

RecyclerView recyclerView = (RecyclerView)findViewById(R.id.scripts_recycler_view); 
recyclerView.setAdapter(adapter); 
int columns = getResources().getInteger(R.integer.scripts_columns); 
recyclerView.setLayoutManager(new GridLayoutManager(this, columns)); 
recyclerView.setHasFixedSize(true); 

項目

<LinearLayout 
android:layout_width="300dp" 
android:layout_height="300dp" 
android:background="@drawable/game_border" 
android:gravity="center" 
android:orientation="vertical"> 

は、私は2つの問題を抱えて:行

  • 項目の間にスペースがない

    1. をCENTEされていません赤い行

    Androidスタジオですべてのプロパティを試しましたが、効果がありません。私はグーグルで、多くの質問を開いたが、私はまだ運がない。私はどんな魔法の財産を使うのですか?

    ご覧のとおり、アイテムは画面の左側に配置されています。私はそれを中心に動かしたい。第1行目と第2行目の間にスペースはありません。 1.thereについて

    enter image description hereenter image description here

  • +0

    アイデアを持っている人は誰でも、どのようにアイテムをセンターするのですか?私は単一の列で別の画像を追加します。 –

    +0

    重力=中心のカスタムレイアウトのパラメータを渡すことがありますか?しかし、私はセッターを発見していない。 –

    +0

    私はGridViewにスワップし、タイルは最終的に中央に配置されます。 –

    答えて

    0

    の間にスペースは、各項目の下に間隔を提供しなければならないitem.Thisの線形レイアウトでandroid:layout_marginBottom="10dp"を試していません。 2.itemsについては

    はあなたrecyclerviewなし左余白に右マージンを与えているよう

    が見えるの行の中央に配置されていません。

    android:layout_marginLeft="20dp" 
    android:layout_marginStart="20dp" 
    

    は、両側に等間隔を与えます。 またはセット

    app:layout_gravity="center" 
    

    アイテムの線形レイアウトです。

    +0

    広告1)ありがとう、これは動作します。それはなぜ親コンテナで動作しないのですか? –

    +0

    あなたは1または2を参照していますか? –

    +0

    ad 2)これにより改善される可能性がありますが、現在のサイズに関係なくアイテムを中央に配置したいと考えています。 –

    2

    (1)の最も簡単な解決策は、@ surajのように、上端および/または下端を追加することです。

    (2)について - 重要な問題は、あなたのアイテムが正方形であることです。それを有効にするには、android:layout_width="match_parent"と設定し、両方のディメンションの実際の小さなディメンション(幅または高さ)を使用するようにアイテムのデザインを変更します(場合によってはバックグラウンドを四角形にする必要があります)。その後、アイテムのLinearLayoutの中心にあるコンテンツを表示します(既にこれを行っています)。 GridLayoutManagerはこの時点でlayout_gravityをサポートしていないので、この方法で行う必要があります。

    +0

    ありがとうございます。 GridViewはうまくいきました。 –

    +1

    私は考えました。しかし、私はあなたと同じ問題を抱えていたので、正方形のビューと同じ細部を持って、私はそれを理解して世界の残りの部分を助けることにしました。 – Uli

    +0

    [OK]をupvoted ... –

    関連する問題