首页 > 代码库 > Android基础控件使用细节——ListView

Android基础控件使用细节——ListView

这个系列准备了很久,由于项目比较紧,一直没时间写博客。


ListView是Android开发中使用比较广泛的控件了,这里会结合实际开发中的问题,做一个汇总,并不断更新补充,希望以后可以帮到更多需要的朋友!


有时候为了精简代码,不使用xml布局文件了,直接setContentView(mListView);,这时就要用到代码里硬编码设置ListView的样式了,本人开发时遇到一个奇葩问题,给ListView设置分割线,没有效果,擦,坑爹呢,找了好多资料,遇到这问题的不是我一个人,竟然没人解决,有人甚至妥协了,使用了Xml文件,这其实是Android代码的问题,setDivider和setDividerHeight顺序必须一前一后,颠倒了就不好使,忽然感觉自己的脑袋不够用了哈。记住就行了!没有辣么多为神马!

// 设置列表的样式
ListView mListView = (ListView) findViewById(R.id.mListView);
mListView.setBackgroundColor(Color.parseColor("#F1F1F1"));
mListView.setPadding(20, 20, 20, 20);
mListView.setVerticalScrollBarEnabled(false);
// Android败笔:设置分割线颜色(这两行代码位置不能反置否则无效果)
mListView.setDivider(new ColorDrawable(Color.TRANSPARENT));
mListView.setDividerHeight(6);
setContentView(mListView);

接着上一个ListView,再设置一个空界面(当List列表没有数据时候显示的温馨提示),这里需要ListView的Parent来添加了,当然可以不用xml,也可以硬编码new出一个布局,由于我的项目里要显示特殊的图片效果,只能仍痛割爱用了xml布局文件。稍后我会写一下xml完成ListView和EmptyView的示例代码。

// 设置列表为空的显示界面
LayoutInflater inflater = LayoutInflater.from(mContext);
View view = inflater.inflate(R.layout.layout_empty, null);
((ViewGroup) mListView.getParent()).addView(view);
ImageView empImg = (ImageView) findViewById(R.id.empImg);
TextView empTip = (TextView) findViewById(R.id.empTip);
empImg.setImageResource(R.drawable.ic_logo_empty);
empTip.setText("没有相关的数据");
mListView.setEmptyView(view);














Android基础控件使用细节——ListView