如何添加分隔线在RecyclerView android系统中? [英] how to add divider line in RecyclerView in android?
本文介绍了如何添加分隔线在RecyclerView android系统中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我开发一个Android应用程序,其中我使用 RecyclerView
。我需要添加一个分在 RecyclerView
。
我搜索了很多,但没有找到任何合适的回答。我尝试添加 -
recyclerView.addItemDecoration(新
DividerItemDecoration(getActivity(),
DividerItemDecoration.VERTICAL_LIST));
下面是我的xml code -
< android.support.v7.widget.RecyclerView
机器人:ID =@ + ID / drawerList
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginTop =15dp
/>
解决方案
正确的方法是定义 ItemDecoration
为 RecyclerView
是如下
SimpleDividerItemDecoration.java
公共类SimpleDividerItemDecoration扩展RecyclerView.ItemDecoration {
私人绘制对象mDivider;
公共SimpleDividerItemDecoration(上下文的背景下){
mDivider = context.getResources()getDrawable(R.drawable.line_divider)。
}
@覆盖
公共无效onDrawOver(帆布C,RecyclerView父母,RecyclerView.State州){
INT左= parent.getPaddingLeft();
INT右= parent.getWidth() - parent.getPaddingRight();
INT childCount = parent.getChildCount();
的for(int i = 0; I< childCount;我++){
查看孩子= parent.getChildAt(我);
RecyclerView.LayoutParams PARAMS =(RecyclerView.LayoutParams)child.getLayoutParams();
INT顶= child.getBottom()+ params.bottomMargin;
INT底=顶部+ mDivider.getIntrinsicHeight();
mDivider.setBounds(左,上,右,下);
mDivider.draw(C);
}
}
}
line_divider.xml:
< XML版本=1.0编码=UTF-8&GT?;
<形状的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:形状=矩形>
<大小
机器人:宽=1DP
机器人:身高=1DP/>
[固体机器人:颜色=@色/ dark_gray/>
< /形状>
最后这样设置
recyclerView.addItemDecoration(新SimpleDividerItemDecoration(本));
I am developing an android application where I am using RecyclerView
. I need to add a divider in RecyclerView
.
I search a lot but did not find any proper answer. I tried to add -
recyclerView.addItemDecoration(new
DividerItemDecoration(getActivity(),
DividerItemDecoration.VERTICAL_LIST));
below is my xml code -
<android.support.v7.widget.RecyclerView
android:id="@+id/drawerList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
/>
解决方案
The Right way is to define ItemDecoration
for the RecyclerView
is as following
SimpleDividerItemDecoration.java
public class SimpleDividerItemDecoration extends RecyclerView.ItemDecoration {
private Drawable mDivider;
public SimpleDividerItemDecoration(Context context) {
mDivider = context.getResources().getDrawable(R.drawable.line_divider);
}
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
int left = parent.getPaddingLeft();
int right = parent.getWidth() - parent.getPaddingRight();
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = parent.getChildAt(i);
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
int top = child.getBottom() + params.bottomMargin;
int bottom = top + mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
}
line_divider.xml:
<?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="@color/dark_gray" />
</shape>
Finally set it like this
recyclerView.addItemDecoration(new SimpleDividerItemDecoration(this));
这篇关于如何添加分隔线在RecyclerView android系统中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文