ho questo layout:Frammento non smettere di anteprima della fotocamera
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/DeepSkyBlue"
tools:context=".MainPreviewActivity"
android:weightSum="5">
<FrameLayout
android:id="@+id/clean_preview_fragment_container"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3"/>
<ListView
android:layout_height="0dp"
android:layout_weight="2"
android:layout_width="match_parent"
android:id="@+id/lvImageProcessChoices"/>
</LinearLayout>
E nella mia attività ho ottenuto questo:
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if(savedInstanceState != null){
System.out.println("savedInstanceState is NOT null");
return;
}
CleanPreviewFragment cleanPreviewFragment = new CleanPreviewFragment();
processedPreviewFragment = new ProcessedPreviewFragment();
fragmentTransaction.add(R.id.clean_preview_fragment_container,cleanPreviewFragment);
fragmentTransaction.detach(cleanPreviewFragment);
fragmentTransaction.replace(R.id.clean_preview_fragment_container, processedPreviewFragment);
fragmentTransaction.attach(cleanPreviewFragment);
fragmentTransaction.commit();
Ora quello che fa, è avviare un'anteprima della fotocamera (sul frammento di anteprima pulito), lo scollega e lo sostituisce con un'altra anteprima, che è la mia anteprima modificata e quindi allegata di nuovo (il frammento di anteprima pulito).
Detach(): consente di scollegare il frammento dall'interfaccia utente. Questo è lo stesso stato di quando viene inserito nello stack posteriore: il frammento viene rimosso dall'interfaccia utente, tuttavia il suo stato viene ancora gestito attivamente dal gestore dei frammenti.
Quindi lo scollego, ma l'anteprima della fotocamera continua ancora?
Perché quando si verifica la sostituzione, posso vedere un'anteprima modificata. È causato dal metodo attach()?
pessimo titolo. –
Il frammento alla fine dovrebbe essere chiamato l'ultima volta prima del comando. Inoltre, non chiamare il metodo addToBackStack se non si desidera tenerlo http://developer.android.com/intl/ko/training/basics/fragments/fragment-ui.html – Want2bExpert
Trovo abbastanza divertente che tutti siano dicendo la stessa cosa e tuttavia la persona che chiede non ha mai risposto. E ... StackOverflow dice sopra "Questa domanda non ha ricevuto abbastanza attenzione". Ironia forse? –