1

もう1つのフラグメントにはフラグメントがありますが、追加してsuccussfulyにコミットしますが、削除したいときは機能しません。他の1つの子フラグメントを削除することはできません

主な活動断片

public class MainActivityFragment extends Fragment { 
    ScreenUtility screenUtility; 

    public MainActivityFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View v = inflater.inflate(R.layout.fragment_main, container, false); 

     screenUtility = new ScreenUtility(getActivity()); 

     TotalAmountFragment totalAmountFragment; 
     totalAmountFragment = new TotalAmountFragment(); 

     if (screenUtility.getOrientation() == 1){ 
      getChildFragmentManager() 
        .beginTransaction() 
        .add(R.id.main_total_amount_fragment_container, totalAmountFragment, "totalPrice") 
        .commit(); 
     } else if (screenUtility.getOrientation() == 2 && getChildFragmentManager().findFragmentByTag("totalPrice") != null){ 
      FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction(); 
      transaction.remove(totalAmountFragment); 
      transaction.commit(); 
      transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); 
     } 
     return v; 
    } 
} 

XMLファイル

... 
<FrameLayout 
      android:id="@+id/main_total_amount_fragment_container" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:foregroundGravity="center" 
      android:layout_centerHorizontal="true"/> 

私は何をすべきでしょうか?私は思ったことを何でもした。

答えて

0

は働いていない

FragmentManager fm = getActivity().getSupportFragmentManager(); 
if (fm.getBackStackEntryCount() != 0) { 
     fm.popBackStack(); 
    } 
+0

このコードを試してみてください!最初にタブレットが横になっているときにフラグメントが追加されず、縦に回転すると子フラグメントが正しく表示されますが、デバイスを再び横に回転させると削除されません。 – altruistic

+0

素早くフラグメントを置き換えてみませんか? – Madhav

+0

何と置き換えますか? – altruistic

0
if (screenUtility.getOrientation() == 1){ 
     getFragmentManager() 
       .beginTransaction() 
       .add(R.id.main_total_amount_fragment_container, totalAmountFragment, "totalPrice") 
       .commit(); 
    } else { 
     Fragment priceFragment = getActivity().getSupportFragmentManager().findFragmentByTag("totalPrice"); 
     if (priceFragment != null){ 
      getActivity().getSupportFragmentManager().beginTransaction().remove(priceFragment).commit(); 
     } 
    } 
関連する問題