2016-07-27 57 views
21

Mam pionowy widok recyklingu za pomocą gridlayoutmanager. Chcę, aby każda kolumna była wyśrodkowana, ale kolumny zaczynają się całkowicie po lewej stronie. Na poniższym obrazku widać, o czym mówię. Użyłem brzydkiego schematu kolorów do zilustrowania kolumn i tła. Zielony jest tłem dla każdej pozycji w recyclerview, czerwona jest tło samego recyclerview:Jak wyśrodkować elementy RecyclerView w poziomie za pomocą pionowego GridLayoutManager

http://imgur.com/a/J3HtF

mam ustawienie go z:

mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); 

Oto column_item. xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="120dp" 
       android:layout_height="180dp" 
       android:orientation="vertical" 
       android:padding="4dp"> 

    <ImageView 
     android:id="@+id/movie_column_photo" 
     android:layout_width="80dp" 
     android:layout_height="120dp"/> 

    <TextView 
     android:id="@+id/movie_column_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

Oto xml recyclerview:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/company_details_recyclerview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical"> 
    </android.support.v7.widget.RecyclerView> 
</LinearLayout> 

Odpowiedz

43

Spróbuj pozwalając poz kolumna wypełnić szerokość kolumny podczas centrowania wszystko wewnątrz:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="180dp" 
       android:orientation="vertical" 
       android:padding="4dp"> 

    <ImageView 
     android:id="@+id/movie_column_photo" 
     android:layout_width="80dp" 
     android:layout_height="120dp" 
     android:layout_gravity="center_horizontal"/> 

    <TextView 
     android:id="@+id/movie_column_title" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center"/> 
</LinearLayout> 
+0

To działało jak urok! Dziękuję bardzo! – JackTheCripple

+0

Świetnie! Działa doskonale dzięki! –

+0

Produkt o wypełnionej szerokości rozwiązał ten problem! dzięki –