当选择另一个项目时,ListView中的可绘制动画会移动

时间:2015-03-12 17:17:49

标签: c# android xamarin xamarin.android mvvmcross

我正在尝试在列表视图中的特定项目上显示动画。动画启动的方式是当你点击列表视图中的某个项目时,按一个按钮启动某个过程,动画开始。

一切似乎都很好。我能够根据所选项目启动动画。但这是奇怪的行为,只要我在列表视图中点击另一个项目,动画就会随之移动。

动画应该坚持以前选择的项目。如果我在选择第二个项目时点击按钮,那么它应该在这个项目上开始动画。

List View有一个适配器,但是这个适配器的主要部分是GetBindableView方法,它基本上只设置背景颜色(没什么特别的):

protected override View GetBindableView(View convertView, object source, int templateId)
    {
        var view = base.GetBindableView(convertView, source, templateId);
        var item = source as Inspection;
        if (item != null)
        {
            if (item.IsSelected)
            {
                view.SetBackgroundColor((Color)Helper.ToMvxColor(Const.ListViewSelectorHexColor));
            }
        }

        return view;
    }

这里是列表视图的xml:

<Mvx.MvxListView
     android:id="@+id/listView1"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     local:MvxBind="ItemsSource Inspections; SelectedItem SelectedInspection; Visibility Visibility(PendingInsListViewVisible)"
     local:MvxItemTemplate="@layout/template_listview"
     style="@style/listview" />

这是模板:

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1.5"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        style="@style/listview_item">
            <ImageView
                android:id="@+id/caching_anim"
                android:layout_width="0dp"
                android:layout_weight=".5"
                style="@style/caching_image" />
            <TextView
                android:layout_width="0dp"
                android:layout_weight=".5"
                style="@style/form_label.spacer" />
            <RelativeLayout
                android:layout_width="0dp"
                android:layout_weight=".5"
                android:layout_height="match_parent"
                android:gravity="center_vertical|center">
                <ImageView
                    android:id="@+id/imageButtonLock"
                    local:MvxBind="Visibility Visibility(BooleanValueToBoolean(Locked))"
                    android:src="@drawable/ic_lock"
                    style="@style/toggle_lock_image" />
                <ImageView
                    android:id="@+id/imageButtonUnLock"
                    local:MvxBind="Visibility Visibility(FinishedButNotLocked)"
                    android:src="@drawable/ic_unlock"
                    style="@style/toggle_lock_image" />
                <ImageView
                    android:id="@+id/blankImage"
                    local:MvxBind="Visibility Visibility(If(FinishedButNotLocked, false, true))"
                    android:src="@drawable/blank"
                    style="@style/toggle_lock_image" />
            </RelativeLayout>
            <TextView
                android:layout_width="0dp"
                android:layout_weight=".5"
                android:id="@+id/textView1"
                local:MvxBind="Text MarkerLabel"
                android:gravity="center"
                style="@style/listview_item.marker" />
        </LinearLayout>

使用Id&#34; caching_anim&#34;在ImageView上完成动画。

有没有人尝试过或已经看过这种行为?我该怎么做才能让动画贴在特定的项目上?我在这里错过了什么?如果需要进一步澄清,请告诉我。

提前致谢!

0 个答案:

没有答案