listView.setDivider(new ColorDrawable(Color.GRAY));
listView.setDividerHeight(1);
必须按照这个顺序写,否则不会显示出来。
源码如下:
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();
}
...
public int getIntrinsicHeight() {
return -1;
}
如果setDivider(Drawable divider)参数不为空,要获取一个内部默认的高度,顺着源码看进去才发现 默认高度是-1,什么?!竟然是-1,-1单位的高度若显示就活见鬼了。干脆紧接着再手动设置一个高度吧,跳出满满的套路成功!
listView.setDivider(new ColorDrawable(Color.GRAY));
listView.setDividerHeight(1);