как динамически изменить класс фрагмента - PullRequest
7 голосов
/ 15 сентября 2011

Привет, у меня есть linearLayout, содержащий два фрагмента, и я добавляю вкладки с кодом в этот макет. То, что я хочу, - когда я нажимаю tab1, можно фрагментировать заливку из указанного класса, но в tab2 я хочу изменить этот класс на другой класс. Спасибо

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/frags">

   <fragment class="com.tugce.MitsActionBar.DoktorlarFragment"
            android:id="@+id/frag_title"
            android:visibility="gone"
            android:layout_marginTop="?android:attr/actionBarSize"
            android:layout_width="@dimen/titles_size"
            android:layout_height="match_parent" /> 

    <fragment class="com.tugce.MitsActionBar.ContentFragment"
            android:id="@+id/frag_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

Ответы [ 2 ]

25 голосов
/ 15 сентября 2011

Изменить <fragment/> в формате XML на <FrameLayout/>

<FrameLayout
        android:id="@+id/frag_title"
        android:visibility="gone"
        android:layout_marginTop="?android:attr/actionBarSize"
        android:layout_width="@dimen/titles_size"
        android:layout_height="match_parent" /> 

<FrameLayout
        android:id="@+id/frag_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

и программно добавлять фрагменты:

FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

ExampleFragment fragment = new ExampleFragment();
fragmentTransaction.replace(R.id.frag_content, fragment);
fragmentTransaction.commit();

Но сначала прочитайте это .

3 голосов
/ 04 июля 2014

Кратчайшая версия вызова фрагмента

getFragmentManager().beginTransaction().replace(R.id.splash_container, new ExampleFragment()).addToBackStack(null).commit();

addToBackStack(null) необязательно, если вы хотите сохранить фрагмент в стеке или нет ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...