我试图以一种方式使listview元素显示,使它们每个都进行动画处理,然后变得可见,因此,它们一个接一个地进行动画处理,并变得对用户可见。
但是当我实现动画时,它不能用于单个项目,而是可以用于整个listview :(

public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row =layoutInflater.inflate(R.layout.categories_row, parent, false);




        tvCatName = (TextView) row.findViewById(R.id.tvCatName);

        tvCatName.setText(Data.alCategoriesModels.get(position).catname);


        row.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                Toasts.pop(activity, "Category id :  " + Data.alCategoriesModels.get(position).catID);

            }
        });

//      row.setAnimation(animation);
        row.startAnimation(animation);

        return row;
    }

如何在 ListView 的每个元素上制作一个动画。我是扩展ArrayAdapter。

最佳答案

您可以在android:layoutAnimation上应用ListView

  • anim文件夹中创建动画XML文件。例如(slide_right_in.xml):
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillAfter="true"
        android:duration="400"
        android:fromXDelta="-100%"
        android:toXDelta="0%"/>
    
  • 使用根元素layoutAnimation :( my_layout_animation.xml)创建另一个动画XML文件。
    <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
        android:animation="@anim/slide_right_in"
        android:delay="0.5"/>
    
  • 将其应用于所需的任何ViewGroup。例如ListView:
    <ListView
        android:layoutAnimation = "@anim/my_layout_animation"
        ... />
    
  • 10-07 19:28
    查看更多