我正在尝试在列表视图中的特定项目上显示动画。动画启动的方式是当你点击列表视图中的某个项目时,按一个按钮启动某个过程,动画开始。
一切似乎都很好。我能够根据所选项目启动动画。但这是奇怪的行为,只要我在列表视图中点击另一个项目,动画就会随之移动。
动画应该坚持以前选择的项目。如果我在选择第二个项目时点击按钮,那么它应该在这个项目上开始动画。
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上完成动画。
有没有人尝试过或已经看过这种行为?我该怎么做才能让动画贴在特定的项目上?我在这里错过了什么?如果需要进一步澄清,请告诉我。
提前致谢!