使用ViewPager设置Actionbar标题

时间:2013-01-20 17:10:47

标签: android android-viewpager

我的应用在启动时有一个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

1 个答案:

答案 0 :(得分:3)

您可能希望覆盖MyFragmentPagerAdapter课程中的方法getPageTitle(int)。文档说明:

  

ViewPager可以调用此方法来获取标题字符串   描述指定的页面。此方法可能返回null表示否   这个页面的标题。默认实现返回null。

因此,请确保返回实际页面标题,而不是返回null。您将被传递到请求标题的页面的位置/索引,因此一个简单的switch-case语句就足够了。或者,您可以为页面设置界面并查询相关页面的标题。