すべての新しいActionBarおよびFragments APIでハンドルを取得しようとしています。 私は主な活動をしており、2つの異なるタブを管理したいと考えています。 私はICSより古いバージョンをサポートするためにActionBarSherlockを使用しています。フラグメントがデタッチされて再接続された後、フラグメントのonResumeが呼び出されない
は、各タブには、独自のFragment
私はそれが基本的に素敵動作するようになった (各1がSherlockListFragment
のサブクラスである)が含まれていますが、私はそれが愚かであると確信している問題を抱えているが、私はそれを把握することはできませんまだ:
それぞれのフラグメントが最初に表示され、すべてがOKで、リストに値が設定され、ActionBarのMenuItemが表示されます。
しかし、2回目に(表示されたスイッチとスイッチバックの後で)タブが表示されても、リストには表示されず、ActionBar MenuItemも表示されません。
これは私がタブを切り替えるてる方法です:
@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
SherlockListFragment toAttach = // Find the right fragment here...
if (toAttach != null) {
if (toAttach.isAdded() == false) {
transaction.add(R.id.tab_placeholder, toAttach,
REMINDER_FRAGMENT_TAG);
} else {
transaction.attach(toAttach);
}
}
}
そしてonTabUneselect私は断片を取り外しています:
@Override
public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
SherlockListFragment toDetach = // Find the right fragment
if (toDetach != null) {
transaction.detach(toDetach);
}
}
私はonResumeでリストやアクションバーのメニューを移入しています:
@Override
public void onResume() {
super.onResume();
setHasOptionsMenu(true);
fillRemindersList();
}
私もONSTARTとonCreateViewでそれを試してみましたが、それは助けにはならなかった...
ここで私は何が欠けていますか? 私のコードに他の問題があるとわからない場合は、教えてください。
ありがとうございます!
EDIT:
私はちょうど ...私は取り外しと再取り付け、それらてるので、definetly間違っている、私はタブを切り替えた後onResume
dosen'tが呼び出されることを確認した私は、タブの切り替えアム間違った道?
ありがとう、私はList Navigationに切り替えたので、これは答えだと思う。 (私の場合、意味を成し遂げ、完璧に動作します:) –
私の場合、 'FragmentTranaction.commit()'を呼び出す直前にフラグメント#1の 'FragmentTranaction.remove(フラグメント#1)'を呼び出すと、フラグメント#1フラグメント#1に戻るボタンを押すとonPause()... onDestroyView()を呼び出してonCreateView()... onResume()を実行します。 –