RecyclerView 上的 FindViewWithTag (AppCompat)
FindViewWithTag on RecyclerView (AppCompat)
要使用 ActivityOptionsCompat.MakeScaleUpAnimation(),我需要访问动画来源的视图。我使用 MvvmCross,所以我需要通过 MvxFragmentsPresenter 传递(应该与问题无关)。 ViewModel 请求可以包含 key/value 个参数。因此,我将标签附加到每个 RecyclerView 项目,然后将该标签作为参数传递到 ViewModel 请求中,就像完成的那样 。我可以在演示者中访问此标签。
现在在演示者中我需要找到被点击的 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 不起作用很奇怪。有人有想法吗?
找了几个小时后,我决定post这个问题。然后回头看了一下,找到了原因:我正在搜索一个带有字符串类型标签的项目,而我应该一直在搜索一个数字......你可以使用你想要的任何类型的标签,所以在你的情况下如果你有同样的问题,它可能会有所不同。你只需要保持一致。
要使用 ActivityOptionsCompat.MakeScaleUpAnimation(),我需要访问动画来源的视图。我使用 MvvmCross,所以我需要通过 MvxFragmentsPresenter 传递(应该与问题无关)。 ViewModel 请求可以包含 key/value 个参数。因此,我将标签附加到每个 RecyclerView 项目,然后将该标签作为参数传递到 ViewModel 请求中,就像完成的那样
现在在演示者中我需要找到被点击的 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 不起作用很奇怪。有人有想法吗?
找了几个小时后,我决定post这个问题。然后回头看了一下,找到了原因:我正在搜索一个带有字符串类型标签的项目,而我应该一直在搜索一个数字......你可以使用你想要的任何类型的标签,所以在你的情况下如果你有同样的问题,它可能会有所不同。你只需要保持一致。