私のアプリにはListView
起動中があります。ユーザーは、 で項目を手動で選択ListView
して詳細画面に移動するか、 を使用してさまざまな詳細画面間をスワイプできViewPager
ます。フラグメントは次のViewPager's
ようにセットアップされます。
上場 詳細 1 詳細2 詳細 3 詳細4 ...
私の理解では、Listing フラグメントがロードされると、ViewPager
パフォーマンスのために詳細 1 のコードが実行されます。Detail 1 がロードされたときと同じように、Detail 2 のコードが実行されます。
私が直面している問題は、各詳細フラグメントのタイトルを に設定していることですがonActivityCreated
、リスト フラグメントが読み込まれると、詳細 1 のタイトルが表示されます。これはonPageSelected
、ViewPager
ユーザーがスワイプしている場合に機能しますが、ユーザーがListView
タイトル内の項目を手動で選択した場合は設定されません。
ユーザーがスワイプしているときではなく、アイテムを手動で選択したときにのみ発生するイベントがあるかどうか、ListView
またはアプリのセットアップを再考する必要があるかどうかはわかりません。たとえば、Listing フラグメントの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) {
}
});