我的应用在启动时有一个ListView
。用户可以手动选择ListView
中的项目以转到详细信息屏幕,也可以使用不同详细信息屏幕之间的ViewPager
进行滑动。 ViewPager's
片段的设置如下:
Listing Detail 1 Detail 2 Detail 3 Detail 4 ...
我的理解是,当加载Listing片段时,ViewPager
将执行Detail 1的代码,以提高性能。加载细节1时也一样,细节2的代码将执行。
我遇到的问题是我在onActivityCreated
中设置了每个细节片段的标题,但是,当加载了Listing片段时,它显示了Detail 1的标题。所以我将代码移动到onPageSelected
的{{1}},如果用户正在滑动,则该代码有效,但如果用户手动选择ViewPager
中的项目,则永远不会设置标题。
我不确定是否只有当用户手动选择ListView
中的某个项目时才触发该事件,而不是当他们正在刷卡或我需要重新考虑我的应用设置时。例如,不要在清单片段的ListView
事件中使用此代码:
onListItemClick
我需要以某种方式使用final Intent listing = new Intent(getActivity().getApplicationContext(), Details.class);
startActivity(listing);
。
ViewPager
答案 0 :(得分:3)
您可能希望覆盖MyFragmentPagerAdapter
课程中的方法getPageTitle(int)
。文档说明:
ViewPager可以调用此方法来获取标题字符串 描述指定的页面。此方法可能返回null表示否 这个页面的标题。默认实现返回null。
因此,请确保返回实际页面标题,而不是返回null
。您将被传递到请求标题的页面的位置/索引,因此一个简单的switch-case语句就足够了。或者,您可以为页面设置界面并查询相关页面的标题。