我有问题。当我滚动 gridView 图像更改其位置时。 GetView 代码。 THX
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_row_layout, null);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView.findViewById(R.id.thumbImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ListItem newsItem = listData.get(position);
if (holder.imageView != null) {
new ImageDownloaderTask(holder.imageView).execute(newsItem.getUrl());
}
return convertView;
}
元素布局。这是第一个listView。我正在使用listView的列表适配器。 的 list_row_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff34495e"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="-24dp"
android:paddingBottom="-24dp">
<ImageView
android:id="@+id/thumbImage"
android:layout_width="360dp"
android:layout_height="360dp"
android:adjustViewBounds="false"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="false"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"
android:src="@drawable/placeholder" />
</RelativeLayout>
答案 0 :(得分:0)
ListView和GridView在项目不再可见时回收项目,因此如果您的ImageView未正确设置图像,则会出现问题。
您在&#34; holder.imageView&#34;中设置图像的唯一位置显然在ImageDownloaderTask中,所以你必须在该类中有问题。 或者它没有正确设置holder.imageView,或者下载图像并替换旧图像需要很长时间。
试试这个:
if (holder.imageView != null) {
holder.imageView.setImageDrawable(null);
new ImageDownloaderTask(holder.imageView).execute(newsItem.getUrl());
}
这不会让事情变得正确,但是当ImageDownloaderTask类工作时以及不工作时,你会看得更清楚。
答案 1 :(得分:0)
public View getView(int position, View convertView, ViewGroup parent){
// TODO Auto-generated method stub
View v;
if(convertView==null)
{
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.icontext, null);
}else{
v = convertView;
}
TextView tv = (TextView)v.findViewById(R.id.icon_text);
tv.setText(providers[position]);
ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
iv.setImageResource(R.drawable.icon);
return v;
}