У указанного ребенка уже есть родитель
Этот вопрос задавался здесь много раз, однако я не мог найти помощи ни в одном из них. Я пишу приложение для 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);