在ExpandableListView的子节点中使用ViewSwitcher

时间:2012-03-15 16:54:17

标签: android xamarin.android

我无法在ExpandableListView的任何子节点中正确地替换2个视图(来自我的ViewSwitcher)。替换布局的孩子总是第一次在屏幕上显示(可以是第一组的第一个孩子,或第二组的第三个孩子......如果这个孩子在屏幕中第一个)

这是我的代码:

 protected override void OnCreate(Bundle bundle)
 {
      base.OnCreate(bundle);

      this.SetContentView(Resource.Layout.main);


      ExpandableListView elv = (ExpandableListView)FindViewById(Resource.Id.ExpandableListView01);

      loadData();

      MyExpandableAdapter adapter = new MyExpandableAdapter(this, groups, childs);
      elv.SetAdapter(adapter);



      elv.ChildClick += (object sender, Android.Widget.ExpandableListView.ChildClickEventArgs e) =>
      {
           ViewSwitcher vs = FindViewById<ViewSwitcher>(Resource.Id.details2);
           vs.InAnimation = AnimationUtils.LoadAnimation(this, Resource.Animation.fade);
           vs.ShowNext();               

      };
}

此外,如果我将ChildClick事件更改为下一个代码,'fade'动画将用于正确的子项,但我不会使用ViewSwitcher的布局,所以,我该怎么办?

 elv.ChildClick += (object sender, Android.Widget.ExpandableListView.ChildClickEventArgs e) =>
          {
               Animation animation = AnimationUtils.LoadAnimation(this, Resource.Animation.fade);

               e.V.StartAnimation(animation)  ;           

          };
    }

1 个答案:

答案 0 :(得分:0)

我自己回答。

elv.ChildClick += (object sender, Android.Widget.ExpandableListView.ChildClickEventArgs e) =>
{

     ViewSwitcher vs = (ViewSwitcher)e.V;
     vs.InAnimation = AnimationUtils.LoadAnimation(this, Resource.Animation.fade);

     vs.ShowNext();


};