use*_*926 31 android android-recyclerview
我正在尝试为DividerItemDecoration设置我的自定义drawable(行),但没有成功.哪里出错了?
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getContext(),
LinearLayoutManager.VERTICAL);
dividerItemDecoration.setDrawable(getContext().getResources().getDrawable(R.drawable.sk_line_divider));
Run Code Online (Sandbox Code Playgroud)
XML形状:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:width="1dp"
android:color="#000000">
</stroke>
</shape>
Run Code Online (Sandbox Code Playgroud)
小智 60
将形状更改为矩形.
例如:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size
android:width="1dp"
android:height="1dp" />
<solid android:color="@color/primary" />
</shape>
Run Code Online (Sandbox Code Playgroud)
Noc*_*urn 12
程序化(解决方案):
如果您只想更改分隔线的颜色而不是创建自定义可绘制对象,则可以使用 ColorDrawable:
DividerItemDecoration itemDecoration = new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL);
itemDecoration.setDrawable(new ColorDrawable(R.color.greycc));
recyclerView.addItemDecoration(itemDecoration);
Run Code Online (Sandbox Code Playgroud)
如果除了颜色之外尺寸也很重要,您可以使用 GradientDrawable:
DividerItemDecoration itemDecoration = new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL);
GradientDrawable drawable = new GradientDrawable(GradientDrawable.Orientation.BOTTOM_TOP, new int[]{0xfff7f7f7, 0xfff7f7f7});
drawable.setSize(1,1);
itemDecoration.setDrawable(drawable);
recyclerView.addItemDecoration(itemDecoration);
Run Code Online (Sandbox Code Playgroud)
请注意,在数组中设置颜色值需要完整的十六进制值八位组,否则将显示不正确的颜色,即 0x FF 3E3E3E 而不是 0X3E3E3E。
彩色分隔线更新 (2023):
val itemDecoration = DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
itemDecoration.setDrawable(
ResourcesCompat.getDrawable(resources, android.R.color.holo_green_light, theme)!!
)
recyclerView.addItemDecoration(itemDecoration)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17672 次 |
| 最近记录: |