我的应用程序有一个ListView
启动。用户可以手动选择一个项目ListView
以进入详细信息屏幕,也可以ViewPager
在不同的详细信息屏幕之间滑动。ViewPager's
片段设置如下:
清单 细节 1 细节 2 细节 3 细节 4 ...
我的理解是,当加载清单片段时,ViewPager
将执行 Detail 1 的代码,以提高性能。同样,当加载细节 1 时,细节 2 的代码将执行。
我遇到的问题是我在 中设置每个细节片段的标题onActivityCreated
,但是,当列表片段被加载时,它显示细节 1 的标题。因此,我将代码移至onPageSelected
的ViewPager
,如果用户正在滑动,则该代码有效,但如果用户手动选择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) {
}
});