私は、私のチームのアプリに2つの異なるホーム画面の中から選択できる機能を追加しています。これらの画面の両方が非常に異なる感触を持っていることに注意してください。ユーザの嗜好に応じて2つの異なるフラグメント間でホームフラグメントを切り替える方法
私の現在のセットアップでは、HomeFragmentという抽象クラスを継承する2つの別々のフラグメントHome1FragmentとHome2Fragmentがあります。ユーザーは設定ページで設定を変更するまで、Home1Fragmentをデフォルトで使用します。
ホームスクリーンとして単独で動作する場合、これらのフラグメントは両方とも実装されており、両方とも正しく動作します。
私の問題は、あるフラグメントから別のフラグメントに切り替えるときに発生します。私は私の目の前で実際のコードせずにその場でそれを書いたので、上記のコードにタイプミスがあるかもしれません
@Override
public void onBackPressed() {
FragmentManager fragmentManager = getFragmentManager();
if(fragmentManager.getBackStackEntryCount() > 1) {
fragmentManager.popBackStackImmediate();
int option = getSharedPreferences('**hidden**', MODE_PRIVATE).get('home_screen_option', 0);
Fragment fragment = fragmentManager.findFragmentById(R.id.content);
if(fragment != null && fragment instanceof HomeFragment) {
if(f instanceof Home1Fragment && option == HOME_2) {
f = new Home2Fragment();
} else if (f instanceof Home2Fragment && option == HOME_1) {
f = new Home1Fragment();
}
}
} else {
finish();
}
}
を経由してこれにしようとしました。
コードの問題点は何ですか?フラグメントは表示されませんか? –