显示时 GridPagerAdapter 和 CardFragment 更新

GridPagerAdapter and CardFragment Update When Shown

我在可穿戴设备上使用自定义 GridPagerAdapterCardFragmentCardFragment 有一个 TextView,它使用 android:ellipsize 属性设置为 marquee。在调用 setSelected(true) 之前,TextView 不会滚动。我遇到的问题是将该方法调用放在哪里,以便文本仅在卡片可见时滚动。现在我在 CardFragmentonCreateContentView() 中调用 setSelected() 方法,但这使得文本始终被选中,即使卡片不在视图中也可以滚动。

我已经查看了这两个 GridPagerAdapter and CardFragment 的文档,但没有找到适合我需要的方法。我已经尝试了 CardFragment 方法 onHiddenChanged()onStart()/onStop()onResume()/onPause()onHiddenChanged() 似乎根本没有被调用。 onPause()onStop() 似乎按预期工作,但 onStart()onResume() 在片段实际出现之前被调用。是否有可能知道卡片何时实际可见(以及何时隐藏),还是我运气不好?

一般来说,适配器只是提供数据,而使用它们的视图实际上决定了何时显示它。因此,我认为您需要直接转到 GridViewPager 并添加一个 GridViewPager.OnPageChangeListener。这样你就可以监听页面何时添加,然后调用 setSelected()