显示时 GridPagerAdapter 和 CardFragment 更新
GridPagerAdapter and CardFragment Update When Shown
我在可穿戴设备上使用自定义 GridPagerAdapter
和 CardFragment
。 CardFragment
有一个 TextView
,它使用 android:ellipsize
属性设置为 marquee
。在调用 setSelected(true)
之前,TextView
不会滚动。我遇到的问题是将该方法调用放在哪里,以便文本仅在卡片可见时滚动。现在我在 CardFragment
的 onCreateContentView()
中调用 setSelected()
方法,但这使得文本始终被选中,即使卡片不在视图中也可以滚动。
我已经查看了这两个 GridPagerAdapter
and CardFragment
的文档,但没有找到适合我需要的方法。我已经尝试了 CardFragment
方法 onHiddenChanged()
、onStart()
/onStop()
和 onResume()
/onPause()
。 onHiddenChanged()
似乎根本没有被调用。 onPause()
和 onStop()
似乎按预期工作,但 onStart()
和 onResume()
在片段实际出现之前被调用。是否有可能知道卡片何时实际可见(以及何时隐藏),还是我运气不好?
一般来说,适配器只是提供数据,而使用它们的视图实际上决定了何时显示它。因此,我认为您需要直接转到 GridViewPager
并添加一个 GridViewPager.OnPageChangeListener
。这样你就可以监听页面何时添加,然后调用 setSelected()
。
我在可穿戴设备上使用自定义 GridPagerAdapter
和 CardFragment
。 CardFragment
有一个 TextView
,它使用 android:ellipsize
属性设置为 marquee
。在调用 setSelected(true)
之前,TextView
不会滚动。我遇到的问题是将该方法调用放在哪里,以便文本仅在卡片可见时滚动。现在我在 CardFragment
的 onCreateContentView()
中调用 setSelected()
方法,但这使得文本始终被选中,即使卡片不在视图中也可以滚动。
我已经查看了这两个 GridPagerAdapter
and CardFragment
的文档,但没有找到适合我需要的方法。我已经尝试了 CardFragment
方法 onHiddenChanged()
、onStart()
/onStop()
和 onResume()
/onPause()
。 onHiddenChanged()
似乎根本没有被调用。 onPause()
和 onStop()
似乎按预期工作,但 onStart()
和 onResume()
在片段实际出现之前被调用。是否有可能知道卡片何时实际可见(以及何时隐藏),还是我运气不好?
一般来说,适配器只是提供数据,而使用它们的视图实际上决定了何时显示它。因此,我认为您需要直接转到 GridViewPager
并添加一个 GridViewPager.OnPageChangeListener
。这样你就可以监听页面何时添加,然后调用 setSelected()
。