我正在使用listview包含每个单元格中的viewflipper。现在,viewflipper倾向于每2秒翻转一次图像。在我的适配器中,我使用了持有者概念,但在每个持有者内部都有一个viewflipper,它在其中添加了动态图像视图。我确信这是不允许listview顺利滚动的要点。这是我用来在我的持有人中设置图像的功能:
viewflipper.removeAllViews();
LinearLayout.LayoutParams flip_pams= new LinearLayout.LayoutParams((int)(width*0.18), (int)(width*0.18));
if(!TextUtils.isEmpty(pics)){
String[] picarray= pics.split(", ");
for(String pic: picarray){
if(!dp.equals("")){
ImageView image = new ImageView(con);
image.setLayoutParams(flip_pams);
imageLoader.displayImage(pic, image, options);
viewflipper.addView(image);
}
}
if(picarray.length>1){
viewflipper.startFlipping();
}
}
我可以做些什么来改善它?或者有没有替代使用而不是Viewflipper? P.S:我知道我们不应该在listview的持有者中设置layoutparams,其次添加动态的imageview也是一团糟。但我无法找到任何其他选择。
答案 0 :(得分:0)
试试这种方式;
public View getView(int position, View convertView, ViewGroup parent) {
final ViewFlipper viewflipper;
if (convertView == null) {
convertView = mLayoutInflater.inflate(mLayout, null);
viewHolder = new ViewHolder();
viewHolder.flipper = (ViewFlipper) convertView.findViewById(R.id.viewConfFlipper1);
viewHolder.flipper.setDisplayedChild(0);
viewHolder.v2FieldName = (TextView) convertView.findViewById(R.id.tvLongName);
viewHolder.button01 = (ImageButton) convertView.findViewById(R.id.imageButton1);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.flipper.setDisplayedChild(0);
}
viewflipper = (ViewFlipper) convertView.findViewById(R.id.viewConfFlipper1);
viewHolder.v2FieldName.setText(items.get(position).get("name"));
viewHolder.button01.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
viewflipper.showNext();
}
});
return convertView;
}