我想用图像制作ListView。像this这样的东西。 但有些项目只有文字,没有图像。对于那些我只想显示文字的项目。 我怎么能这样做?
答案 0 :(得分:1)
列表视图中的每个项目都是一个单独的视图,可以根据需要创建。只需在适配器类的GetView方法中从两个单独的布局中扩展视图。
这样的事情:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return new MyViewItem(getImage(), getText(), parent);
}
*****
class MyViewItem extends LinearLayout
{
public MyViewItem(ImageClass image, String text, ViewGroup parent) {
super(parent);
View.inflate(parent, image==null?R.layout.layout1:R.layout.layout2, this);
//Now assign correct text and image using this.findViewById() function.
}
}
我留给你定义layout1和layout2以及如何处理实际的图像和文本,但这应该可以解决问题。
答案 1 :(得分:0)
你也可以拥有1个视图,但是当你不想让图像存在时,只需在图像上将visiblity设置为GONE。只要您正确设置了布局,文本就会再次弹到边缘!