2014-07-23 8 views
11

Die Android-Material-Design-Dokumentation schlägt vor, eine 8 dp Polsterung am oberen und unteren Ende einer Liste hinzufügen, und ich persönlich mag die Idee und möchte es implementieren. Ich verwende das neue Widget RecyclerView, um das Aussehen einer einfachen Liste zu erreichen. Das Problem, das ich habe, ist, wenn ich die Attribute: paddingTop und paddingBottom meiner RecyclerView, der Overscroll Schatten, der am oberen und unteren Ende der Liste erscheint jetzt hat auch eine Polsterung (und sieht irgendwie schlecht und wie ein Fehler) . Ich habe gelesen, dass die Einstellung dieser Attribute:RecyclerView clipToPadding = false

clipToPadding = false 
scrollbarStyle = outsideOverlay 

sollte den Trick für mich tun, aber es einfach nicht. Der Overscroll-Effekt beginnt immer noch mit einer Polsterung von 8 dp am oberen und unteren Bildschirmrand und es nervt mich wirklich. Mache ich hier etwas falsch oder gibt es eine andere Lösung für mein Problem? Jeder Rat geschätzt. Thx

+1

I Believe _RecyclerView.ItemDecoration_ ist die Klasse, die für die Implementierung dieser Art von Verhalten vorgesehen ist. Vor allem seine _getItemOffsets_ Dokumentation klingt etwas, das verwendet werden könnte, um Padding an beiden Enden des Inhalts hinzuzufügen. – harism

Antwort

5

Dies ist ein bekannter Fehler, der behoben wird, wenn RecyclerView veröffentlicht wird.

+0

Ok, wenn das der Fall ist .. Kannst du einfach einen Link des gemeldeten Fehlers senden (wenn es gemeldet wird). Ich werde Ihre Antwort akzeptieren .. – Sandra

+0

nicht sicher, ob es gemeldet wurde, aber es ist bereits behoben. – yigit

+0

https://code.google.com/p/android-developer-preview/issues/detail?id=261 Dies ist der Link zur Ausgabe, aber ich glaube nicht, dass es noch nicht behoben ist! – Pramod

7

Hinzufügen clipToPadding als falsche Werke auf neuesten Versionen

android:clipToPadding="false" 

Ich verwende recylerview Version

compile 'com.android.support:recyclerview-v7:22.2.1' 
+2

Ich kann auch bestätigen, dass es in dieser Version funktioniert .. – Sandra

+0

@Libin es funktioniert nicht einmal in der neuesten Bibliothek. Ich habe die Version von RecyclerView, die Sie erwähnt haben, aktualisiert und auch clipTpPadding = "false" zu recyclerView hinzugefügt und Pager, in dem es geladen wird, angezeigt. Aber immer noch ist das Problem da. Bitte leiten Sie mich, wie Sie es lösen können, wenn Sie es bereits gelöst haben. –

+0

@Sandra ich kann dir auch helfen, das wird toll. –

-1

Diese Methode wird die Polsterung an die letzte Position Ansicht geben

public class MyAdapter extends RecyclerView.Adapter<VH>{ 

public int getItemType(int position){ 

if(arrayList.size()-1==position){ 

return ITEM_TYPE; 
} 

return 0; 
} 

public MyHolder onBindViewHolder(MyHolder holder,int position){ 

if(getItemViewType(position)==ITEM_TYPE){ 
holder.itemView.setPadding(0,0,0,10); 
} 

}