Listview不能在每个单元格中使用viewflipper顺畅滚动

时间:2016-04-28 06:25:46

标签: android listview viewflipper

我正在使用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也是一团糟。但我无法找到任何其他选择。

1 个答案:

答案 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;

}