Фрагмент Android не заменяет должным образом - PullRequest
3 голосов
/ 03 марта 2012

Я пытаюсь создать приложение для 3.0, используя фрагменты.С левой стороны приложения находится статический фрагмент, а с правой стороны - динамический.Каждый из моих фрагментов в динамической части имеет заголовок.Всякий раз, когда я иду на замену исходного фрагмента, заголовок первого по-прежнему отображается над заголовком первого.Последовательные замены заменяют нижнюю часть, но первоначальный заголовок все еще отображается (извините, я пока не могу опубликовать изображения).

Лучшее, что я могу сделать для изображения:

Начальный заголовок

НовыйЗаголовок

Содержимое (отображается нормально)

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <fragment
        android:id="@+id/static_fragment"
        android:name="ruleout.android.History_Fragment"
        android:layout_width="500dp"
        android:layout_height="match_parent" />
    <fragment
        android:id="@+id/dynamic_fragment"
        android:name="ruleout.android.New_Screen_Fragment"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" />
</LinearLayout>

Частичное MainActivity используется для изменения фрагментов

private void open(Fragment toShow)
{
    FragmentTransaction fragmentTransaction = FragMag.beginTransaction();
    fragmentTransaction.replace(R.id.dynamic_fragment, toShow);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

Пожалуйста, дайте мне знатьесли вам нужна дополнительная информация и заранее спасибо за помощь.

1 Ответ

8 голосов
/ 03 марта 2012

Если вы хотите динамически изменять фрагменты, вы не можете объявить их в макете.Документация Fragment содержит пример выполнения именно того, что, я думаю, вы описываете, когда в макете объявлен статический фрагмент, а также FrameLayout для хранения фрагмента, который будет динамически добавляться и заменяться.

...