Mam problem z zastąpieniem fragmentu za pomocą FragmentManager. Mój problem polega na blokowaniu interfejsu użytkownika. Próbuję znaleźć dobre praktyki i/lub bibliotekę, aby poradzić sobie z moimi problemami.Freezing UI podczas transakcji fragmentów
Część mojego kodu:
Główny układ działalność:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.DrawerLayout>
Główna klasa aktywność
public class MyActivity extends Activity
metodą
public void nextFragment(Fragment fragment, int position) {
fragment.setArguments(new Bundle());
FragmentManager fragmentManager = getFragmentManager();
fragmentManager
.beginTransaction()
.replace(R.id.content, fragment).commit();
}
Każdy mojego fragmentu jest jak
import android.app.Fragment;
public class SomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RelativeLayout rootView = (RelativeLayout) inflater.inflate(
R.layout.fragment_layout, container, false);
//many long time data downloading & creating view
}
private void nextFragment() {
((MyActivity) getActivity()).nextFragment(
new SomeNextFragment(), 0);
}
}
Teraz z powodu pobierania danych z każdego startu fragmentu mój interfejs użytkownika jest zamrożony. Z góry dziękuję za pomoc.
Używasz układ support.v4 z android.app.Fragments i nie jestem pewien dlaczego. Zmień 'extends Activity' na' extend FragmentActivity', zmień 'getFragmentManager()' na 'getSupportFragmentManager()'. Zmień import 'android.app.Fragment' na' android.support.v4.Fragment'. – EpicPandaForce
Używam nawigacjiDrawer i przez przykład strony dla programistów Androida Używam tego przykładu. – Meryl
Ale nie żartuję, powinieneś zmienić fragment, aby obsługiwał fragment – EpicPandaForce