使用下面代码设置分隔线颜色,无效,竟然看不到分割线了,即使设置分割线宽度为100,也看不到,从这两行代码看,应该没什么问题吧,也是很常规的写法。
在CODE上查看代码片派生到我的代码片
listView.setDividerHeight(1);
listView.setDivider(new ColorDrawable(Color.GRAY));
为什么无效呢?看看setDivider的源码
在CODE上查看代码片派生到我的代码片
public void setDivider(Drawable divider) {
if (divider != null) {
mDividerHeight = divider.getIntrinsicHeight();
} else {
mDividerHeight = 0;
}
mDivider = divider;
mDividerIsOpaque = divider == null || divider.getOpacity() == PixelFormat.OPAQUE;
requestLayout();
invalidate();
}
下面代码
在CODE上查看代码片派生到我的代码片
if (divider != null) {
mDividerHeight = divider.getIntrinsicHeight();
如果参数不为空,要获取一个内部默认的高度,这个高度是多少呢,看下面代码
在CODE上查看代码片派生到我的代码片
public int getIntrinsicHeight() {
return -1;
}
高度返回-1
从源代码看,只要调用了ListView的setDivider接口,mDividerHeight就会被置为0或-1,所以你根本看不到线,如果想看到线,就要把调用顺序反过来,如下
在CODE上查看代码片派生到我的代码片
listView.setDivider(new ColorDrawable(Color.GRAY));
listView.setDividerHeight(1);
分享到:
相关推荐
### Android ListView分割线知识点 #### 一、ListView简介 在Android开发中,`ListView`是一种常用的UI组件,用于展示一个可以滚动的列表项集合。它能够有效地管理大量的数据,并且只渲染当前屏幕可见的部分,从而...
总之,自定义ListView的分割线是Android开发中的常见操作,通过理解ListView的工作机制、熟悉Drawable资源和自定义View,我们可以创造出符合设计需求的个性化分割线。同时,深入源码阅读有助于解决实际问题和提升...
例如,可以通过设置`android:listSelector`属性来自定义选中项的背景,或者通过`android:divider`和`android:dividerHeight`来设置分割线。 6. **其他高级技巧**:为了实现更复杂的圆角效果,比如只让顶部和底部有...
本篇文章将详细讲解如何在Android中设置ListView的分割线,包括颜色、高度等方面。 首先,要创建一个ListView,我们需要在布局文件中定义它。以下是一个简单的示例: ```xml <LinearLayout xmlns:android=...
为了使ListView整体看起来更美观,我们可能还需要处理ListView的分割线。可以自定义一个`DividerDrawable`,并将其设置到ListView的`divider`属性上。例如: ```xml <!-- res/drawable/list_divider.xml --> ...
Android ListView仿微信关于界面分隔线...用一个模拟微信的“关于”界面,来向大家展示Listview在微信中的用法,如何修饰和自定义ListView的风格,以及分隔线的使用、字体大小及颜色的定义等,面向Android初级开发者。
在Android开发中,UI设计是用户体验的关键因素之一,而列表视图(ListView、RecyclerView)的分割线对于提高界面的清晰度和美观性起着至关重要的作用。`FlexItemDecoration`是一个专门为RecyclerView设计的库,它提供...
* 使用颜色设置分割线样式 在选择分割线样式时,我们需要根据实际情况选择合适的样式,以便实现最佳的视觉效果。 此外,我们还可以使用其他控件来实现表格分割线效果,例如 TableView、ListView 等。但是,...
ItemDecoration允许你在ListView的Item之间添加分割线,或者修改Item的外观,包括背景颜色。以下是一个基本的实现: ```java public class CustomItemDecoration extends ListView.ItemDecoration { private int...
- 如果需要类似表格的分割线,可以自定义ListView的Divider,或者在每一项的布局中添加分割线。 7. **优化表格对齐** - 为了保证列宽的一致性,可以使用`TableLayout`或`GridLayout`作为ListView的Item布局,但...
1. 设置GridView背景色:在GridView的XML布局中,可以通过`android:background`属性为整个GridView设置背景颜色,以此来创建行分割线的效果。例如,设置为灰色`#999999`可以作为默认行分隔。 2. 设置间隔:使用`...
- 通过`setDivider()`和`setDividerHeight()`设置分割线。 - 使用`setCacheColorHint()`优化颜色缓存。 - 调整`smoothScrollBy()`或`smoothScrollToPosition()`实现平滑滚动。 - 在数据更新时调用`...
最后,在Activity或Fragment中设置ListView的Adapter,并根据需要调整ListView的分割线(divider)以增强边框效果。 ```java ListView listView = findViewById(R.id.listView); listView.setAdapter(new Custom...
此外,对于`ListView`、`GridView`或`RecyclerView`,可以通过设置`Divider`属性或自定义`ItemDecoration`来实现列表项之间的分割线。例如,在`ListView`中: ```xml <ListView android:layout_width="match_...
divider 属性用于控制 ListView 中的分割线。当我们需要在每个列表项之间添加一个图片作为间隔时,可以使用该属性。 例如: ```xml android:divider="@drawable/list_driver" ``` 如果我们不想显示分割线,可以将该...
1. XML布局:在布局文件中添加ListView元素,可以通过android:id属性指定其ID,通过android:layout_width和android:layout_height设置尺寸,通过android:divider和android:dividerHeight调整条目间的分割线。...
// 在这里设置分割线的颜色、宽度等属性,可以通过XML属性来传递 } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 在onDraw方法中绘制分割线 Paint paint = new Paint(); ...
// 分割线颜色 c.drawRect(left, top, right, bottom, paint); } } private int dpToPx(Context context, float dp) { return (int) (dp * context.getResources().getDisplayMetrics().density + 0.5f); } ...
- 分割线的定制可以通过`android:divider`属性设置颜色,例如`android:divider="#FF0000"`,表示红色分割线。若需使用图片作为分割线,同样指定此属性,并确保图片高度适当,可以通过`android:dividerHeight`设置...