2014-07-23 15 views
11

Tài liệu thiết kế material design android gợi ý thêm đệm 8 dp ở đầu và cuối danh sách, và cá nhân tôi thích ý tưởng và muốn triển khai nó. Tôi đang sử dụng tiện ích RecyclerView mới để hoàn thành giao diện của một danh sách đơn giản. Vấn đề mà tôi gặp phải là khi tôi thiết lập các thuộc tính: paddingToppaddingBottom của RecyclerView, bóng overscroll xuất hiện ở trên cùng và dưới cùng của danh sách bây giờ có một padding quá (và loại trông xấu và giống như một lỗi) . Tôi đã đọc cài đặt các thuộc tính này:RecyclerView clipToPadding = false

clipToPadding = false 
scrollbarStyle = outsideOverlay 

nên thực hiện thủ thuật cho tôi, nhưng đơn giản là không. Hiệu ứng overscroll vẫn bắt đầu với một padding 8 dp ở phía trên và dưới cùng của màn hình và nó thực sự lỗi tôi ra ngoài. Tôi đang làm điều gì đó sai ở đây, hoặc có một giải pháp khác cho vấn đề của tôi? Bất kỳ lời khuyên nào được đánh giá cao. Thx

+1

tôi tin rằng _RecyclerView.ItemDecoration_ là lớp dành cho việc thực hiện loại hành vi này. Đặc biệt là tài liệu _getItemOffsets_ của nó âm thanh cái gì đó có thể được sử dụng để thêm đệm ở cả hai đầu của nội dung. – harism

Trả lời

5

Đây là lỗi đã biết, sẽ được khắc phục khi RecyclerView được phát hành.

+0

Ok, nếu đó là trường hợp .. Bạn có thể chỉ cần gửi một liên kết của các báo cáo lỗi (nếu nó được báo cáo). Tôi sẽ chấp nhận câu trả lời của bạn .. – Sandra

+0

không chắc chắn nếu nó đã được báo cáo, nhưng nó đã được cố định. – yigit

+0

https://code.google.com/p/android-developer-preview/issues/detail?id=261 Đây là liên kết phát hành nhưng tôi chưa nghĩ rằng nó đã được sửa! – Pramod

7

Thêm clipToPadding công trình như sai về phiên bản mới nhất

android:clipToPadding="false" 

Tôi đang sử dụng phiên bản recylerview

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

Tôi cũng có thể xác nhận rằng nó hoạt động trong phiên bản này .. – Sandra

+0

@Libin nó không hoạt động ngay cả trong thư viện mới nhất. Tôi đã cập nhật phiên bản recyclerView mà bạn đã đề cập và cũng đã thêm clipTpPadding = "false" vào recyclerView và xem máy nhắn tin trong đó nó đang được tải. Nhưng vấn đề vẫn còn đó. Hãy hướng dẫn tôi cách giải quyết nó nếu bạn đã giải quyết nó. –

+0

@Sandra i bạn cũng có thể giúp tôi, điều đó sẽ rất tuyệt vời. –

-1

Phương pháp này sẽ cung cấp cho các đệm vào vị trí điểm cuối cùng

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); 
} 

}