带有删除图标

时间:2015-08-20 17:22:18

标签: android animation android-listview

我有ListView和客户适配器,当我点击编辑按钮并在每行显示删除图标时,我的listView行应该动画。

所有行都会制作动画并显示删除图标,但是第一个隐藏项目不会更改,直到我向下滚动列表并在动画时看到它。

如何让所有列表项同时生成动画?

我在getView方法中将动画代码放在CustomerAdapter类中。

代码:

public View getView(int position,View convertView,ViewGroup parent){

    View view = convertView;
    ViewHolder holder;

    if(convertView==null){

        view = inflater.inflate(R.layout.layout,parent,false);

        holder = new ViewHolder();
        holder.title = (TextView) vi.findViewById(R.id._title_textview);          

        holder.content=(LinearLayout)vi.findViewById(R.id.content_layout);

        holder.deleteIcon=(LinearLayout)vi.findViewById(R.id.delete_layout);

        holder.img=(ImageView)vi.findViewById(R.id._main_img);

        view.setTag( holder );
    }
    else
        holder=(ViewHolder)vi.getTag();


    if(MainActivity.click_edit_btn)
        {
            animation_right_to_left(holder.content_layout);
            holder.deleteIcon.setVisibility(View.VISIBLE);
        }

    if(MainActivity.click_done_btn)
        {
            animation_left_to_right(holder.content_layout);
            holder.deleteIcon.setVisibility(View.GONE);
        }

    if(data.size()<=0)
        holder.title.setText("No Data");
    else
    {
        tempValues=null;
        tempValues = ( ListItemModel ) data.get( position );

        holder.title.setText( tempValues.getTitle() );
        holder.type.setText( tempValues.getType() );

    }
    return view;
}

活动代码:

公共类MainActivity扩展了Activity {
        。         。         。         。         

    adapter = new CustomerAdapter( CustomListView, listData ,res );

    list.setAdapter( adapter );

    edit_layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            click_edit_btn = true;
            click_done_btn = false;

            adapter.notifydatasetchanged();

        }
    });

    delete_done_layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            click_edit_btn = false;
            click_done_btn = true;

            adapter.notifydatasetchanged();
        }
    });

    }

1 个答案:

答案 0 :(得分:0)

此链接说明了ListView如何工作...它关于列表

How ListView's recycling mechanism works

感谢@Muhammad Babar