我正在开发自定义(充气)列表视图。其中我使用文本和背景图像的文本(根据条件)。 现在我在滚动列表视图时遇到问题,即文本视图的背景与其他文本视图重叠。 以下是示例代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View icontextlayout=convertView;
icontextlayout= inflater.inflate(R.layout.layout_complex_list, null);
TextView Txt1=(TextView)icontextlayout.findViewById(R.id.txt1);
if(disp1==true)
{
Txt1.setBackgroundResource(R.drawable.pic)
}
else
Txt1.setText("Text1 "+strUser);//
TextView Txt2=(TextView)icontextlayout.findViewById(R.id.txt2);
if(disp2==true)
{
Txt2.setBackgroundResource(R.drawable.pic);
}
else Txt2.setText("Text2: "+strIndus);
return icontextlayout;
}
请你帮我解决一下背景图片pic与其他背景图片不重叠的问题。
感谢你......
答案 0 :(得分:1)
问题是,当您不需要背景时,必须设置默认背景。例如:
if(disp1==true){
Txt1.setBackgroundResource(R.drawable.pic);
Txt1.setText("");
}
else{
Txt1.setText("Text1 "+strUser);//
Txt1.setBackgroundDrawable(null);
}
另外,如果您不介意,我想就您的代码向我提供意见:
convertView
用于重用行。在你的情况下,你正在做类似的事情:View icontextlayout=convertView;
icontextlayout= inflater.inflate(R.layout.layout_complex_list, null);
哪个不好,因为你实际上并没有使用convertView
(当你调用inflater.inflate
时)它会创建一个新行,因此你的列表会非常慢。
if(disp2==true)
是多余的。您应该考虑使用if(disp2)
。