我的应用在启动时有一个ListView
。用户可以手动选择ListView
中的项目以转到详细信息屏幕,也可以在不同的详细信息屏幕之间使用ViewPager
进行刷卡。该ViewPager's
片段设置是这样的:使用ViewPager设置Actionbar标题
Listing Detail 1 Detail 2 Detail 3 Detail 4 ...
这是我的理解,装载上市片段时,该ViewPager
将执行细节1的代码,性能。当细节1被加载时,细节2的代码将被执行。
我遇到的问题是,我在onActivityCreated
中设置了每个细节片段的标题,但是当列表片段被加载时,它正在显示细节1的标题。因此,我将代码移动到ViewPager
的onPageSelected
,这在用户正在滑动时起作用,但如果用户手动选择ListView
中的项目,则从未设置标题。
我不确定是否有一个事件只在用户手动选择ListView
中的某个项目时触发,而不是当他们正在滑动或者需要重新考虑我的应用程序的设置。例如,而不是在上市片段的onListItemClick
事件中使用此代码:
final Intent listing = new Intent(getActivity().getApplicationContext(), Details.class);
startActivity(listing);
我需要以某种方式使用ViewPager
。
mViewPager = (ViewPager)findViewById(R.id.viewpager);
mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mMyFragmentPagerAdapter);
mViewPager.setSaveEnabled(false);
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
String title = GetTitle(position);
getSupportActionBar().setTitle(title);
}
@Override
public void onPageScrolled(int position, float offset, int offsetPixel) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
我实际上是通过在细节片段中使用事件回调来工作的,而不是启动一个新的活动,当点击ListView中的一个项目并将标题更新代码保存在onPageSelected中时 –