2017-03-01 4 views
1

Ich bin neu bei Android, und ich bin mit diesem Problem konfrontiert, wenn die Bildschirmausrichtung geändert wird. Die fragment wird zweimal aufgerufen, wenn sich die Bildschirmausrichtung ändert. Unten ist das Beispiel meines Codes. Ich habe andere Beiträge überprüft, konnte aber keine Antwort finden. Irgendjemand führt mich durch.Fragment wird zweimal bei der Bildschirmrotation aufgerufen

public class SampleFragment extends Fragment { 

    static final String TAG_NAME = SampleFragment.class.getSimpleName(); 


    List<PhrToolBar> mToolBarList; 


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

     DaggerHelper.getAppProviderComponent().inject(this); 

     mRootView = null; 

     getActivity().setTitle("Personal Health Records"); 

     mRootView = inflater.inflate(R.layout.sample_phr_main_fragment, container, false); 

     mBinding = DataBindingUtil.bind(mRootView); 
     mBinding.setViewModel(mViewModel); 

     setHasOptionsMenu(true); 

     return mRootView; 

    } 
+0

Post vollständigen Code wie Eltern 'activity' von' fragment' und 'manifest' –

+0

Wenn der Bildschirm gedreht wird, onCreate Methode der Aktivität wird auch in diesem called.To vermeiden , fügen Sie diese Zeile in Ihrem Manifest für diese Aktivität hinzu (android: configChanges = "orientation | keyboardHidden"). – Ragini

+0

@Ragini on Bildschirm Rotation, onStart() und onResumeFragments() -Methode wird von der Aktivität aufgerufen. – Evolution

Antwort

3

Einfach fügen Sie diesen Code

if (savedInstanceState == null) { 
// only create fragment if activity is started for the first time 
    mFragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 

FragmentOne fragment = new FragmentOne(); 

fragmentTransaction.add(R.id.fragment_container, fragment); 
fragmentTransaction.commit(); 
} else {   
// do nothing - fragment is recreated automatically 
} 
+0

Bitte erwähnen Sie, wenn die Antwort sinnvoll ist –

+0

Ein bisschen Detail, wenn Sie nicht dieses Check-Fragment von zweimal erstellt hinzufügen, weil Android für Sie nach Rotation Ereignis erstellen und Sie auch eine andere in Ihrer Aktivität erstellen # onCreate. – erhun

Verwandte Themen