Intereting Posts
ANR Broadcast of Intent {act = android.intent.action.SCREEN_OFF flg = 0x50000010} Logback-Android: ошибка «нет применимого действия» при использовании FixedWindowRollingPolicy с SizeBasedTriggeringPolicy Как отключить переадресацию портов adb? Должен ли я закрывать область на основе потока или на использование / класс? AndEngine, Move Sprite плавно используя Accelerometer & PhysicsWorld Java.lang.outofmemoryerror android.graphics.BitmapFactory.nativeDecodeAsset (собственный метод) Как настроить ароматы для проекта android gradle? Таинственная ошибка дубликата класса Альтернатива GCM для локальных сетей или отправка сообщений на IP-адрес устройства Android – PopupWindow выше определенного вида Должен ли полный файл xml содержимого резервной копии быть пустым или вообще не добавлять, чтобы включить все? Получите UDP в Android Marshmallow Есть ли способ ограничить веб-сайт отображением только на Android? WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION никогда не запускается AAR в проекте Eclipse ANT Android: получите учетную запись Google Play, связанную с выставлением счетов в приложении.

OnCreateView Фрагмент не называется

У меня есть пользовательский диалогFragment с контейнером frameLayout, в котором я хочу поместить фрагмент, но его представление всегда возвращает null, что я могу сделать?

В DialogCreateAccount.java

public class DialogCreateAccount extends DialogGeneral implements OnClickListener{ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // TODO Auto-generated method stub Dialog dialog = super.onCreateDialog(savedInstanceState); //........ return dialog; } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); Fragment fragment = CreateAccountFragment.newInstance(); FragmentTransaction ft = getFragmentManager().beginTransaction(); if(fragment.getView()!=null){ // return always null ft.add( getFrameContainer().getId(), fragment ) .commit(); }else{ } Log.i("DialogCreateAccount", "fragment:" +fragment.getView());// return null } 

В CreateAccountFragment.java

  public class CreateAccountFragment extends Fragment implements OnClickListener{ public CreateAccountFragment() { // TODO Auto-generated constructor stub } public static CreateAccountFragment newInstance() { CreateAccountFragment f = new CreateAccountFragment(); return f; } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); Log.i("CreateAccountFragment", "onCreate"); //onCreate is called } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub Log.i("CreateAccountFragment", "onCreateView"); //onCreateView not called mRootView = inflater.inflate(R.layout.dialog_create_an_account, container, false); return mRootView; } } 

В Fragment onCreate вызывается и onCreateView не вызывается.

Фрагмент getView() возвращает только ненулевой вид, как только onCreateView() был запущен в жизненном цикле фрагмента.

Простое создание экземпляра объекта фрагмента не вызывает никаких обратных вызовов жизненного цикла. Они будут вызываться позже, когда транзакция фрагмента выполняется.

Просто поместите фрагмент в контейнер без условной проверки того, возвращает ли getView() ненулевое значение.

Ваш фрагмент должен быть связан с представлением. Это можно сделать либо в макете xml, либо программно.

См. Документацию по фрагментам , раздел «Добавление фрагмента в действие».