`

Android ListView设置分割线颜色

 
阅读更多
使用下面代码设置分隔线颜色,无效,竟然看不到分割线了,即使设置分割线宽度为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分割线

    ### Android ListView分割线知识点 #### 一、ListView简介 在Android开发中,`ListView`是一种常用的UI组件,用于展示一个可以滚动的列表项集合。它能够有效地管理大量的数据,并且只渲染当前屏幕可见的部分,从而...

    ListView设置分割线的长度

    总之,自定义ListView的分割线是Android开发中的常见操作,通过理解ListView的工作机制、熟悉Drawable资源和自定义View,我们可以创造出符合设计需求的个性化分割线。同时,深入源码阅读有助于解决实际问题和提升...

    Android ListView边框圆角美化

    例如,可以通过设置`android:listSelector`属性来自定义选中项的背景,或者通过`android:divider`和`android:dividerHeight`来设置分割线。 6. **其他高级技巧**:为了实现更复杂的圆角效果,比如只让顶部和底部有...

    Android编程简单设置ListView分割线的方法

    本篇文章将详细讲解如何在Android中设置ListView的分割线,包括颜色、高度等方面。 首先,要创建一个ListView,我们需要在布局文件中定义它。以下是一个简单的示例: ```xml <LinearLayout xmlns:android=...

    Android 实现圆角ListView实例

    为了使ListView整体看起来更美观,我们可能还需要处理ListView的分割线。可以自定义一个`DividerDrawable`,并将其设置到ListView的`divider`属性上。例如: ```xml <!-- res/drawable/list_divider.xml --> ...

    Android ListView仿微信关于界面分隔线布局.rar

    Android ListView仿微信关于界面分隔线...用一个模拟微信的“关于”界面,来向大家展示Listview在微信中的用法,如何修饰和自定义ListView的风格,以及分隔线的使用、字体大小及颜色的定义等,面向Android初级开发者。

    Android-FlexItemDecoration灵活的分割线可绘制头部底部最左边最右边分割线

    在Android开发中,UI设计是用户体验的关键因素之一,而列表视图(ListView、RecyclerView)的分割线对于提高界面的清晰度和美观性起着至关重要的作用。`FlexItemDecoration`是一个专门为RecyclerView设计的库,它提供...

    Android使用GridView实现表格分割线效果

    * 使用颜色设置分割线样式 在选择分割线样式时,我们需要根据实际情况选择合适的样式,以便实现最佳的视觉效果。 此外,我们还可以使用其他控件来实现表格分割线效果,例如 TableView、ListView 等。但是,...

    listview中改变item背景颜色

    ItemDecoration允许你在ListView的Item之间添加分割线,或者修改Item的外观,包括背景颜色。以下是一个基本的实现: ```java public class CustomItemDecoration extends ListView.ItemDecoration { private int...

    Android中ListView实现表格效果

    - 如果需要类似表格的分割线,可以自定义ListView的Divider,或者在每一项的布局中添加分割线。 7. **优化表格对齐** - 为了保证列宽的一致性,可以使用`TableLayout`或`GridLayout`作为ListView的Item布局,但...

    Android中控件GridView实现设置行列分割线的方法示例

    1. 设置GridView背景色:在GridView的XML布局中,可以通过`android:background`属性为整个GridView设置背景颜色,以此来创建行分割线的效果。例如,设置为灰色`#999999`可以作为默认行分隔。 2. 设置间隔:使用`...

    Android中ListView的使用

    - 通过`setDivider()`和`setDividerHeight()`设置分割线。 - 使用`setCacheColorHint()`优化颜色缓存。 - 调整`smoothScrollBy()`或`smoothScrollToPosition()`实现平滑滚动。 - 在数据更新时调用`...

    加边框的listview

    最后,在Activity或Fragment中设置ListView的Adapter,并根据需要调整ListView的分割线(divider)以增强边框效果。 ```java ListView listView = findViewById(R.id.listView); listView.setAdapter(new Custom...

    android利用xml实现分割线

    此外,对于`ListView`、`GridView`或`RecyclerView`,可以通过设置`Divider`属性或自定义`ItemDecoration`来实现列表项之间的分割线。例如,在`ListView`中: ```xml <ListView android:layout_width="match_...

    listview的属性使用大全

    divider 属性用于控制 ListView 中的分割线。当我们需要在每个列表项之间添加一个图片作为间隔时,可以使用该属性。 例如: ```xml android:divider="@drawable/list_driver" ``` 如果我们不想显示分割线,可以将该...

    设置ListView的显示风格

    1. XML布局:在布局文件中添加ListView元素,可以通过android:id属性指定其ID,通过android:layout_width和android:layout_height设置尺寸,通过android:divider和android:dividerHeight调整条目间的分割线。...

    Android 优雅实现元素间的分割线 (支持3.0以下)

    // 在这里设置分割线的颜色、宽度等属性,可以通过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程序美化之自定义ListView背景的方法

    - 分割线的定制可以通过`android:divider`属性设置颜色,例如`android:divider="#FF0000"`,表示红色分割线。若需使用图片作为分割线,同样指定此属性,并确保图片高度适当,可以通过`android:dividerHeight`设置...

Global site tag (gtag.js) - Google Analytics