我正在开发每个单元格中都包含viewflipper的listview。现在,viewflipper倾向于每2秒翻转一次图像。在我的适配器中,我使用了支架的概念,但在每个支架内都有一个视图翻转器,它在其中添加了动态图像视图。我确信这是不允许列表视图平滑滚动的原因。这是我用来在支架内设置图像的功能:
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的holder中设置layoutparams,其次添加动态图像视图也是一团糟。但我找不到任何其他选择。
试试这种方法;
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;
}