私はアンドロイドが初めてです。タブバーコントロールを実装するために「FragmentActivity」を使用しています。あるフラグメントから別のフラグメントをプッシュすると、問題に直面しています。タブを変更したり、前のフラグメントに戻ろうとすると、動作がおかしくなります。スタックを適切に管理するための堅実なコードを提供できる人はいますか。
1 に答える
1
フラグメント間の遷移用
Fragment frag;
FragmentTransaction transaction;
frag = new Fragment1();
transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.detailFragment, frag);
transaction.commit();
onKeyDown メソッドをオーバーライドし、戻るボタンが押されるたびに現在のフラグメントを削除します。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (getSupportFragmentManager().getBackStackEntryCount() == 0)
{
this.finish();
return false;
}
else
{
getSupportFragmentManager().popBackStack();
removeCurrentFragment();
return false;
}
}
return super.onKeyDown(keyCode, event);
}
public void removeCurrentFragment()
{
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment currentFrag = getSupportFragmentManager().findFragmentById(R.id.detailFragment);
String fragName = "NONE";
if (currentFrag!=null)
fragName = currentFrag.getClass().getSimpleName();
if (currentFrag != null)
transaction.remove(currentFrag);
transaction.commit();
}
于 2013-03-25T08:00:29.883 に答える