У указанного ребенка уже есть родитель

Этот вопрос задавался здесь много раз, однако я не мог найти помощи ни в одном из них. Я пишу приложение для Android и, похоже, проблема с созданием вкладок на панели действий. Я искал проблему в течение нескольких часов и, кажется, не могу найти решение, однако я думаю, что нашел источник. Я даже опустошил реализации только для того, чтобы получить некоторые результаты и опираться на них, но, увы, я ничего не нашел.

это создание фрагмента вкладки и вставка в панель действий

    // put ActionBar to nav. mode
    ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // init "YES" tab
    Fragment yesTabFragment = Fragment.instantiate(this, YesTabFragment.class.getName());
    FlowTabListener yesTabListener = new FlowTabListener(yesTabFragment);
    ActionBar.Tab yesTab = actionBar.newTab().setText("YES").setTabListener(yesTabListener);
    actionBar.addTab(yesTab);

это метод onCreateView класса

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    _fragmentView =  inflater.inflate(R.layout.yes_fragment, container);    
}

и это макет фрагмента XML

    <?xml version="1.0" encoding="utf-8"?>
    <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" >

    </LinearLayout>

как вы можете видеть, реализации пусты, и я не создаю экземпляр этого фрагмента до этого времени (а не после), однако я получаю эту ошибку:

E/AndroidRuntime(2995): FATAL EXCEPTION: main
E/AndroidRuntime(2995): java.lang.RuntimeException: Unable to start activity ComponentInfo{activities.MainActivity}:    
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Я думаю, что это как-то связано с добавлением вкладки на панель действий, так как, когда я закомментирую actionBar.addTab() приложение работает (без вкладок, очевидно)

Мне бы очень хотелось получить подсказку о том, как с этим разобраться.

Спасибо голова ребята

1 ответ

Решение

Второй параметр inflate() родитель по умолчанию:

_fragmentView =  inflater.inflate(R.layout.yes_fragment, container);

Измените эту строку на:

_fragmentView =  inflater.inflate(R.layout.yes_fragment, null);
Другие вопросы по тегам