2016-09-14 6 views
3

Ich versuche, benutzerdefinierte Teiler in RecyclerView mit GridLayoutManager hinzuzufügen, aber nicht den Erfolg bekommen, habe ich viel gesucht und sah unten in Antwort erwähnen, aber es hat mich nichtGridLayoutManager mit benutzerdefinierten Teiler

helfen

link 1
link 2
link 3

Ich möchte schwarze Linie zwischen jedem Artikel von RecyclerView, etwas wie unten setzen.

enter image description here

Ich habe horizontale Linie bekam zwischen jeder Zeile, aber nicht in der Lage zu finden, wie auch jene Linien zwischen Spalten zu erhalten.

chintan soni's Antwort funktionierte perfekt, aber es ist Problem nur in einem Szenario zu schaffen, wenn ich 5 Ansichten habe, es zeigt Teiler von anderen 3 Artikel auch, wie unten:

enter image description here

+0

diese Antwort richtig funktionieren. http://StackOverflow.com/a/29168276/2900893 –

+0

@ShabbirDhangot es ist nur Platz zwischen den Elementen lassen, erlaubt es nicht, benutzerdefinierte Teiler festlegen, ich habe es bereits ausprobiert. Und in dieser Antwort habe ich keinen Bereich gesehen, um Farbe auch zu setzen, andernfalls int so kann ich auch verwenden –

+0

Wie haben Sie benutzerdefinierte Teiler zwischen Zeile erhalten? –

Antwort

2

Check this out: https://bignerdranch.github.io/simple-item-decoration/

diese in Ihre App-Ebene gradle und sync:

compile 'com.bignerdranch.android:simple-item-decoration:1.0.0' 

Dann gelten Code wie folgt:

Drawable horizontalDivider = ContextCompat.getDrawable(this, R.drawable.line_divider); 
    Drawable verticalDivider = ContextCompat.getDrawable(this, R.drawable.line_divider); 
    recyclerView.addItemDecoration(new GridDividerItemDecoration(horizontalDivider, verticalDivider, 4)); 

Mein line_divider.xml war wie folgt:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <size 
     android:width="1dp" 
     android:height="1dp" /> 

    <solid android:color="@android:color/black" /> 

</shape> 

Dies ist nur eine schnelle Antwort von mir. Aber das sollte funktionieren, ich denke ..

Ausgang:enter image description here

+2

Dies ist Lebenszeit richtige Weg Lösung :) – Piyush

+0

@ Piyush ja .. es ist .. :) –

+0

Vielen Dank, es hat funktioniert :) –

0

Wie pro Sie habe vier Spalten, die ich nach dem erstellen kann. Dies wird für vier Spalten drei gerade vertikale Linie haben

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

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="match_parent" 
      android:background="@android:color/transparent"/> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="match_parent" 
      android:background="@color/black"/> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="match_parent" 
      android:background="@color/black"/> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="match_parent" 
      android:background="@color/black"/> 
    </RelativeLayout> 
</LinearLayout> 
+1

alt und gut bekannt, lebenslange Lösung ..: D –

+0

:) werde versuchen, hoffe es funktioniert. Aber ich habe eine Frage, was, wenn ich 9 Artikel habe? die ersten 2 Reihen werden gefüllt und in der 3. Reihe werde ich einen Gegenstand bekommen, aber es zeigt mir immer noch 2 Reihen der 3. und 4. Spalte richtig? –

+0

Ja, es wird mit diesem und Artikel-Dekorator auch passieren.Es zeigt einen leeren Teil dort auf Item Decorator. Weil es einfarbig ist, werden Sie keine Nebenwirkung sehen. –

Verwandte Themen