Android:每行中带有viewflipper的Listview onclick翻转更多行

标签 android listview viewflipper

所以我的问题是这样的。我有一个 ListView ,每行都有一个 viewflipper。当数据变得更多并且它们不适合屏幕时,当我单击一行以启用 viewflipper 时,它会翻转该行,但也会翻转屏幕下方的另一个随机行。(如果我向下滚动,我可以看到它)

有时,如果我再次上下滚动,翻转的行(第二行)会切换回正常状态并再次翻转。

这是我的适配器

public class HistoryBaseAdapter extends BaseAdapter {

private static ArrayList<HistoryResults> searchArrayList;
private Context CONTEXT;


public HistoryBaseAdapter(Context context, ArrayList<HistoryResults> results, boolean length) {
    searchArrayList = results;
    mInflater = LayoutInflater.from(context);
    log_length = length;
    CONTEXT = context;
}

@Override
public int getCount() {
    return searchArrayList.size();
}

@Override
public Object getItem(int position) {
    return searchArrayList.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.history_row_view, null);
        holder = new ViewHolder();

        holder.flipper = (ViewFlipper) convertView.findViewById(R.id.flipper);
        holder.flipper.setInAnimation(AnimationUtils.loadAnimation(CONTEXT, R.anim.slide_in));
        holder.flipper.setOutAnimation(AnimationUtils.loadAnimation(CONTEXT, R.anim.slide_out));



        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.flipper.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            holder.flipper.showNext();

        }
    });
    return convertView;
}

static class ViewHolder {

    ViewFlipper flipper;


}

谁知道哪里出了问题?

最佳答案

实际上@Raghunandan 帮了大忙!! https://www.youtube.com/watch?v=8MIfSxgsHIs

我刚刚添加了 2 行

holder.flipper.setOnClickListener(new OnClickListener() {

        boolean hasTransientState = true;

        @Override
        public void onClick(View v) {
            holder.flipper.showNext();
            holder.flipper.setHasTransientState(hasTransientState);
            hasTransientState = !hasTransientState;

        }
    });

我不确定这是否是更有效的方法,但它确实有效! 谢谢!!

关于Android:每行中带有viewflipper的Listview onclick翻转更多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789303/

相关文章:

android - ViewFlipper 宽度正在包裹其内容并且 fill_parent 不起作用

没有动画的Android ViewFlipper翻转

java - Android:不可转换的类型;无法将 android.preference.Preference 转换为 androidx.preference.SeekBarPreference

wpf - 如何访问 WPF ListView 的 ListViewItems?

java - 是否可以安装所有 Eclipse 插件?

android - 使用 Intent 删除 ListView 中的项目

Android 从 listView onClick 获取正确的信息

Android ViewFlipper 使用来自 URL 的图像更改背景如何

android - Android Studio 中的求值表达式弹出问题

java - 在android中制作一个自定义函数,这样我就可以在任何地方使用它