【发布时间】:2014-08-28 09:06:49
【问题描述】:
我正在从服务器获取数据。数据包括图像和文本数据。我想在我的 ListView 中显示该数据。我已经这样做了,但是当我滚动列表视图时,列表视图中的图像会改变它们的位置。如何解决这个问题?
@Override
public View getView(final int position, View convertview, ViewGroup parent) {
if (convertview == null) {
convertview = mInflater.inflate(R.layout.search_result_row, null);
holder = new ViewHolder();
holder.rowImagview = (ImageView) convertview.findViewById(R.id.Srch_row_image);
holder.Name_txtview = (TextView) convertview.findViewById(R.id.Srch_result_NameView);
holder.Age_txtview = (TextView) convertview.findViewById(R.id.Srch_result_AgeView);
holder.maritalStatus_txtview = (TextView) convertview.findViewById(R.id.Srch_result_MaaritalView);
holder.Religion_txtview = (TextView) convertview.findViewById(R.id.Srch_result_Religion);
holder.Profession_txtview = (TextView) convertview.findViewById(R.id.Srch_result_profession);
holder.country_txtview = (TextView) convertview.findViewById(R.id.Srch_result_Country);
holder.description_txtview = (TextView) convertview.findViewById(R.id.Srch_description_textView);
holder.showDeatil_btn = (Button) convertview.findViewById(R.id.Srch_result_pofDetail_btn);
convertview.setTag(holder);
} else {
holder = (ViewHolder) convertview.getTag();
}
if (resultList.get(position).getUser_Gender().equalsIgnoreCase("male")) {
options = new DisplayImageOptions.Builder().showStubImage(R.drawable.loading).showImageForEmptyUri(R.drawable.m_c1).showImageOnFail(R.drawable.m_c1).cacheInMemory().cacheOnDisc().displayer(new RoundedBitmapDisplayer(20)).build();
maleImgPosition = 0;
} else {
options = new DisplayImageOptions.Builder().showStubImage(R.drawable.loading).showImageForEmptyUri(R.drawable.f_c1).showImageOnFail(R.drawable.f_c1).cacheInMemory().cacheOnDisc().displayer(new RoundedBitmapDisplayer(20)).build();
femaleImgPosition = 0;
}
/* Image Loader Library to get the images from the server */
imageLoader.displayImage(Url_Settings.Image_base_Url + resultList.get(position).getUser_defaultImag(), holder.rowImagview, options, animateFirstListener);
【问题讨论】:
-
只是为了测试从 if (convertView == null) {} 中剪切整个代码并粘贴到它外面然后注释掉 if (convertView == null) {} else {holder = (ViewHolder) convertview. getTag();} 部分并运行。检查会发生什么?
标签: android listview universal-image-loader