RecyclerView上的FindViewWithTag(AppCompat)

时间:2017-05-30 15:06:03

标签: android android-recyclerview android-support-library mvvmcross android-appcompat

要使用ActivityOptionsCompat.MakeScaleUpAnimation(),我需要访问动画源自的视图。我使用MvvmCross,所以我需要通过MvxFragmentsPresenter传递(不应该与问题相关)。 ViewModel请求可以包含键/值参数。因此,我将一个标记附加到每个RecyclerView项目,然后将该标记作为ViewModel请求中的参数传递,如同here一样。我可以在演示者中访问此标记。

现在在演示者中我需要找到被点击的RecyclerView项目。我想这样做:

View contentFrame = Activity.FindViewById(Resource.Id.content_frame);
View recyclerView = contentFrame.FindViewById(Resource.Id.recycler_view);
View item = recyclerView.FindViewWithTag("mytag");

不幸的是,这会导致null。我可以访问contentFrame和recyclerView,但不能访问Tag。但是我甚至可以使用第一项:

recvddfg.GetChildAt(0);

...并访问标签!所以FindViewWithTag无法正常工作很奇怪。有没有人有想法?

1 个答案:

答案 0 :(得分:0)

搜索了几个小时后,我决定发布这个问题。然后回头看看它并找到了原因:我正在搜索带有string类型标签的项目,而我应该一直在搜索一个数字......你可以使用任何你需要的类型标签,所以在你的情况下如果您遇到同样的问题,可能会有所不同。你只需要保持一致。