1

私はすべてのフラグメントを置換する下部ナビゲーションビューのアクティビティ(ホームアクティビティと呼ぶ)を持っています。ホームアクティビティでは、検索アイコンを持つフラグメントをロードしました。その検索アイコンは、検索アクティビティであるアクティビティにリダイレクトされます。アクティビティのフラグメントを既にバックスタックにある別のアクティビティにロード

検索結果のいずれかをクリックすると、自分のホームアクティビティに移動し、前のフラグメントを置き換えて、最近の検索結果のクリック実装を表示します。

この場合、複雑さは - 私が前のフラグメントを置き換えようとしているとき - ユーザーに見えることです。私はトランジションアニメーションを持っているので、前のフラグメントが終了していて、最新のフラグメントが入っているのがわかります。

これはユーザーにとって良い経験ではありません。以前のフラグメントがユーザーに表示されないように機能を改善する方法を教えてください。

答えて

0

フラグメントはデフォルトで透過的です。そのため、検索結果の断片にバックグラウンドを与える必要があります。 backgroindにレイアウトのルートを設定する。

0

このコードセクションを試してください。必要に応じてアニメーションを作成します。

public static void callFragment(Fragment fragment, Context context, String TAG) { 
    FragmentManager fragmentManager = ((AppCompatActivity) context).getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
    if (fragment.isAdded()) { 
     fragmentTransaction.show(fragment); 
    } else { 
     // fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.face_out); 
     fragmentTransaction.setCustomAnimations(R.anim.fragment_slide_top_enter, R.anim.fragment_slide_top_exit, R.anim.fragment_slide_bottom_enter, R.anim.fragment_slide_bottom_exit); 
     fragmentTransaction.replace(R.id.content_frame, fragment); 
     fragmentTransaction.addToBackStack(TAG); 
    } 
    fragmentTransaction.commit(); 
} 

また、フラグメントレイアウトファイルの背景も提供してください。

関連する問題