Intereting Posts
Неизвестная ошибка в веб-браузере Android ExpandableListView -UnsupportedOperationException: addView (View, LayoutParams) не поддерживается в AdapterView Не удалось аутентифицировать пользователей Firebase при использовании мобильных данных в приложении для Android, но при использовании Wi-Fi не возникает ошибок Несколько первичных ключей – ORMlite Отображение элементов меню на панели действий Android ICS Почему размеры обновлений / патчей для приложений Android похожи на файлы настроек? API Android Backup Форматировать текст для пользовательских предложений поиска, предоставляемых в курсоре от поставщика контента Как сохранить загруженные файлы в кеш-андроид Тестирование FPS в приложении для Android SqliteException занят iOS / Android Xamarin MVVMCross Android: fontFamily требуется уровень api 16, но, как утверждают, уровень 15 в порядке? Сервер доступа эмулятора android в локальной сети ExcludeFromRecents не работает с taskAffinity Могу ли я выполнять математические операции над размерами и переменными?

Fragment.onCreateView имеет пустой контейнер

Следующее работает на Android 1.6, поэтому я использую пакет совместимости для фрагментов. В следующем TestFragment есть статический вложенный класс:

 public class FragmentTestActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public static class TestFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView result = new TextView(getActivity()); result.setText("Hello TestFragment"); return result; } } 

}

Файл main.xml:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment class="com.test.FragmentTestActivity$TestFragment" android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout> 

Странно, что параметр container в onCreateView равен null .

Теперь, если я добавлю фрагмент программно так же (просто измените метод onCreate для Activity), контейнер больше не будет null. Зачем?

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fragment frag = new TestFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit(); } 

Solutions Collecting From Web of "Fragment.onCreateView имеет пустой контейнер"

В документации упоминается, что она может быть нулевой:

Public View onCreateView (плагин LayoutInflater, контейнер ViewGroup, Bundle savedInstanceState)

[…]

Container: Если не null , это родительское представление, к которому должен быть присоединен пользовательский интерфейс фрагмента. Фрагмент не должен добавлять само представление , но это может быть использовано для создания LayoutParams представления.

Чтобы быть ясным: вы не должны делать ничего подобного container.addView(...) .