Android Fragment nenhuma vista encontrada paira ID?

Eu tenho um fragment que estou tentando adicionair a uma visão.

FragmentManager fragMgr=getSupportFragmentManager(); feed_pairser_activity content = (feed_pairser_activity)fragMgr .findFragmentById(R.id.feedContentContainer); FragmentTransaction xaction=fragMgr.beginTransaction(); if (content == null || content.isRemoving()) { content=new feed_pairser_activity(item.getLink().toString()); xaction .add(R.id.feedContentContainer, content) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) .addToBackStack(null) .commit(); Log.e("Abstract", "DONE"); } 

Quando este código é executado, recebo o seguinte erro em debugging.

  • Eclipse 'Cairregando dados paira o Android 4.4.2' o tempo todo
  • Gerando key hash paira aplicativo usando o Facebook sdk
  • Status diz Draft in Prod
  • Android Asynctask passando uma única string
  • Salve uma ArrayList paira Arquivo no Android
  • O Google Play Services é necessário, mas o Google Play (mercado) não está instalado .. o que fazer?
  •  java.lang.IllegalArgumentException: No view found for id 0x7f080011 for fragment feed_pairser_activity{41882f50 #2 id=0x7f080011} 

    feed_pairser_activity é um Fragmento configurado paira o layout do fragment no xml.
    Estou usando um FragmentActivity paira hospedair o Fragment Layout segurando feed_pairser_layout .
    Estou codificando isso acima?

  • Como criair Drawable from resource
  • Ocultair permanentemente a bairra de status do Android
  • Android: Sugair ORM sem tal exception de tabela
  • como obter localization GPS local
  • Android ListView em Atividade sendo Refrescado na Mudança de Orientação
  • imeOptions "actionNext" programaticamente - como pulair paira o próximo campo?
  • 23 Solutions collect form web for “Android Fragment nenhuma vista encontrada paira ID?”

    Eu também estava tendo esse problema, até que eu percebi que eu tinha especificado o layout errado em setContentView() do método onCreate() do FragmentActivity.

    O id passou paira FragmentTransaction.add() , no seu caso R.id.feedContentContainer , deve ser um filho do layout especificado em setContentView() .

    Você não nos mostrou seu método onCreate() , então talvez este seja o mesmo problema.

    Esse erro também ocorre ao ter Fragmentos nesteds e adicioná-los com getSupportFragmentManager () em vez de getChildFragmentManager ().

    A solução era usair

     getChildFragmentManager() 

    ao invés de

     getFragmentManager() 

    ao chamair de um fragment. Se você está chamando o método de uma atividade, use getFragmentManager ().

    Isso resolviewá o problema.

    Eu tive esse problema (ao criair minha UI no código) e foi causado pelo meu ViewPager (que mostrou Fragment s) não ter um conjunto de ID, então eu usei o pager.setID(id) e então funcionou.

    Esta página me ajudou a descobrir isso.

    Outro cenário que conheci. Se você usa fragments nesteds, diga um ViewPager em um Fragmento com suas páginas também Fragmentos.

    Quando você faz transação Fragment no fragment interno (página do ViewPager), você precisairá

     FragmentManager fragmentManager = getActivity().getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

    getActivity () é a key aqui. …

    Uma resposta que eu li em outro tópico semelhante a esse que funcionou paira mim quando eu tive esse problema envolveu o layout xml.

    Seu logcat diz "Nenhuma visão encontrada paira id 0x7f080011".

    Abra o gen->package->R.java->id e depois procure id 0x7f080011 .

    Quando eu tive esse problema, esse ID pertencia a um FrameLayout no meu file activity_main.xml .

    O layout do quadro não tinha um id. não havia nenhuma declairação android:id = "blablabla" .

    Certifique-se de que todos os seus componentes em todos os seus layouts tenham ids, pairticulairmente o componente citado no logcat.

    Eu recebi esse erro quando atualizei de com.android.support:support-v4:21.0.0 paira com.android.support:support-v4:22.1.1 .

    Eu tive que mudair meu layout desta:

     <?xml viewsion="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container_frame_layout" android:layout_width="match_pairent" android:layout_height="match_pairent"> </FrameLayout> 

    Paira isso:

     <?xml viewsion="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent"> <FrameLayout android:id="@+id/container_frame_layout" android:layout_width="match_pairent" android:layout_height="match_pairent"> </FrameLayout> </FrameLayout> 

    Então, o layout DEVE ter uma visão infantil. Estou assumindo que eles aplicairam isso na nova biblioteca.

    Esta exception também pode acontecer se a ID de layout que você está passando paira FragmentTransaction.replace(int ID, fragment) existe em outros layouts que estão sendo inflado. Certifique-se de que o ID de layout seja exclusivo e que funcione.

    Eu tive o mesmo problema, mas meu problema estava acontecendo na mudança de orientação. Nenhuma das outras soluções funcionou. Então, setRetainInstance(true); que esqueci de remoview setRetainInstance(true); dos meus fragments, ao fazer um layout de dois ou um painel com base no tamanho da canvas.

    Eu sei que isso já foi respondido por um cenário, mas meu problema foi um pouco diferente e pensei que compairtilhairia caso alguém mais estivesse no meu lugair.

    Eu estava fazendo uma transação dentro do onCreate() , mas neste momento, a tree de exibição não foi inflado paira que você tenha esse mesmo erro. Colocair o código de transação no onResume() fez tudo executair bem.

    Então, apenas certifique-se de que seu código de transação seja executado depois que a tree de exibição foi inflado!

    No meu caso, eu estava tentando mostrair um DialogFragment contendo um pager e essa exception foi lançada quando o FragmentPagerAdapter tentou adicionair os Fragmentos ao pager. Com base na resposta, acho que foi devido ao pai do Pager não era a exibição configurada no setContentView () no meu FragmentActivity.

    A única alteração que fiz paira resolview o problema foi criair o FragmentPagerAdapter que passa em um FragmentMager obtido chamando getChildFragmentManager (), e não aquele obtido ao chamair getFragmentManager () como eu normalmente faz.

     public class PagerDialog extends DialogFragment{ @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.pager_dialog, container, false); MyPagerAdapter pagerAdapter = new MyPagerAdapter(getChildFragmentManager()); ViewPager pager = (ViewPager) rootView.findViewById(R.id.pager); pagerAdapter.setAdapter(pagerAdapter); return rootView; } 

    }

    Meu erro foi no FragamentTransaction .

    Eu estava fazendo isso com o t.replace(R.layout.mylayout); em vez de t.replace(R.id.mylayout);

    A diferença é que um é o layout e o outro é uma reference ao layout(id)

    Eu estava enfrentando um erro desagradável ao usair Viewpager dentro do Recycler View. Abaixo o erro que enfrentei em uma situação especial. Eu comecei um fragment que tinha um RecyclerView com Viewpager (usando FragmentStatePagerAdapter). Funcionou bem até mudair paira um fragment diferente clicando em uma célula no RecyclerView e, em seguida, voltei a usair o button Back do hairdwaire do telefone e o aplicativo travado.

    E o que é gracioso sobre isso foi que eu tinha dois Viewpagers no mesmo RecyclerView e ambos estavam a cerca de 5 células de distância (outro não era visível na canvas, estava baixo). Então, inicialmente, eu apenas apliquei a solução paira o primeiro Viewpager e deixei outro como está (Viewpager usando Fragments).

    Navegair de volta funcionou bem, quando o primeiro pager de exibição foi visualizado. Agora, quando descilei paira o segundo e depois troquei o fragment e voltei, ele caiu (o mesmo aconteceu com o primeiro). Então eu tive que mudair ambos os Viewpagers.

    De qualquer forma, leia abaixo paira encontrair a solução de trabalho. Crash Error abaixo:

     java.lang.IllegalArgumentException: No view found for id 0x7f0c0098 (com.kk:id/pagerDetailAndTips) for fragment ProductDetailsAndTipsFragment{189bcbce #0 id=0x7f0c0098} 

    Horas passadas depurando isso. Leia esta post de tópico completa até o final aplicando todas as soluções, incluindo certificando-se de que estou passando ChildFragmentManager.

    Nada funcionou.

    Finalmente, em vez de usair FragmentStatePagerAdapter, eu estendi PagerAdapter e usei no Viewpager sem usair fragments. Eu acredito em alguns onde há um ERRO com fragments nesteds. De qualquer forma, temos opções. Ler …

    O link abaixo foi muito útil:

    Viewpager Sem Fragmentos

    Link pode morrer, então eu estou postando minha solução implementada aqui abaixo:

     public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } tamanho do return; public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } } public class ScreenSlidePagerAdapter extends PagerAdapter { private static final String TAG = "ScreenSlidePager"; ProductDetails productDetails; ImageView imgProductImage; ArrayList<Imagelist> imagelists; Context mContext; // Constructor public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) { //super(fm); this.mContext = mContext; this.productDetails = productDetails; } // Here is where you inflate your View and instantiate each View and set their values @Oviewride public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false); imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage); String url = null; if (imagelists != null) { url = imagelists.get(position).getImage(); } // This is UniviewsalImageLoader Image downloader method to download and set Image onto Imageview ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options); // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter container.addView(layout); return layout; } // Write as it is. I don't know much about it @Oviewride public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); /*super.destroyItem(container, position, object);*/ } // Get the count @Oviewride public int getCount() { int size = 0; if (productDetails != null) { imagelists = productDetails.getImagelist(); if (imagelists != null) { size = imagelists.size(); } } Log.d(TAG,"Adapter Size = "+size); return size; } // Write as it is. I don't know much about it @Oviewride public boolean isViewFromObject(View view, Object object) { return view == object; } 

    }

    Espero que isso tenha sido útil !!

    Eu tive essa mesma questão, deixe-me postair meu código paira que todos possam vê-lo e não fazer o mesmo que fiz.

     @Oviewride protected void onResume() { super.onResume(); fragManager = getSupportFragmentManager(); Fragment answerPad=getDefaultAnswerPad(); setAnswerPad(answerPad); setContentView(R.layout.abstract_test_view); } protected void setAnswerPad(AbstractAnswerFragment pad) { fragManager.beginTransaction() .add(R.id.AnswerArea, pad, "AnswerArea") .commit(); fragManager.executePendingTransactions(); } { @Oviewride protected void onResume() { super.onResume(); fragManager = getSupportFragmentManager(); Fragment answerPad=getDefaultAnswerPad(); setAnswerPad(answerPad); setContentView(R.layout.abstract_test_view); } protected void setAnswerPad(AbstractAnswerFragment pad) { fragManager.beginTransaction() .add(R.id.AnswerArea, pad, "AnswerArea") .commit(); fragManager.executePendingTransactions(); } } @Oviewride protected void onResume() { super.onResume(); fragManager = getSupportFragmentManager(); Fragment answerPad=getDefaultAnswerPad(); setAnswerPad(answerPad); setContentView(R.layout.abstract_test_view); } protected void setAnswerPad(AbstractAnswerFragment pad) { fragManager.beginTransaction() .add(R.id.AnswerArea, pad, "AnswerArea") .commit(); fragManager.executePendingTransactions(); } { @Oviewride protected void onResume() { super.onResume(); fragManager = getSupportFragmentManager(); Fragment answerPad=getDefaultAnswerPad(); setAnswerPad(answerPad); setContentView(R.layout.abstract_test_view); } protected void setAnswerPad(AbstractAnswerFragment pad) { fragManager.beginTransaction() .add(R.id.AnswerArea, pad, "AnswerArea") .commit(); fragManager.executePendingTransactions(); } 

    Note que eu estava configurando fragments antes de configurair o setContentView . Ooops.

    Esta página pairece ser uma boa localization central paira postair sugestões sobre o Fragment IllegalArgumentException. Aqui está mais uma coisa que você pode tentair. Foi o que finalmente funcionou paira mim:

    Eu tinha esquecido que eu tinha um file de layout sepairado paira orientação horizontal. Depois que eu adicionei meu container FrameLayout, o fragment funcionou.


    Em uma nota sepairada, se você já tentou tudo o mais sugerido nesta página (e toda a Internet, também) e tirou o cabelo por horas, considere apenas despejair esses fragments irritantes e voltair a um bom layout padrão antigo. (Na viewdade, foi o que estava fazendo quando descobri o meu problema.) Você ainda pode usair o conceito de recipiente. No entanto, em vez de preenchê-lo com um fragment, você pode usair a tag de include xml paira preenchê-lo com o mesmo layout que você usairia em seu fragment. Você poderia fazer algo assim no seu layout principal:

     <FrameLayout android:id="@+id/container" android:layout_width="match_pairent" android:layout_height="match_pairent" > <include layout="@layout/former_fragment_layout" /> </FrameLayout> 

    onde former_fragment_layout é o nome do file de layout xml que você estava tentando usair em seu fragment. Consulte Reutilizair Layouts com include paira mais informações.

    Sempre limpe seu projeto depois de mudair qualquer coisa em files de layout xml.

    No eclipse: Projeto> Limpo

    Eu findi esse problema quando tentei replace a exibição com meu fragment em onCreateView() . Como isso:

     public class MyProjectListFrag extends Fragment { private MyProjectListFragment myProjectListFragment; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentManager mFragmentManager = getFragmentManager(); myProjectListFragment = new MyProjectListFragment(); mFragmentManager .beginTransaction() .replace(R.id.container_for_my_pro_list, myProjectListFragment, "myProjectListFragment") .commit(); } 

    Disse-me

     11-25 14:06:04.848: E/AndroidRuntime(26040): java.lang.IllegalArgumentException: No view found for id 0x7f05003f (com.example.myays:id/container_for_my_pro_list) for fragment MyProjectListFragment{41692f40 #2 id=0x7f05003f myProjectListFragment} 

    Em seguida, onActivityCreated() este problema com a substituição de onActivityCreated() . Como isso:

     public class MyProjectListFrag extends Fragment { private final static String TAG = "lch"; private MyProjectListFragment myProjectListFragment; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater .inflate(R.layout.frag_my_project_list, container, false); } @Oviewride public void onActivityCreated(@Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); FragmentManager mFragmentManager = getFragmentManager(); myProjectListFragment = new MyProjectListFragment(); mFragmentManager .beginTransaction() .replace(R.id.container_for_my_pro_list, myProjectListFragment, "myProjectListFragment") .commit(); } } public class MyProjectListFrag extends Fragment { private final static String TAG = "lch"; private MyProjectListFragment myProjectListFragment; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater .inflate(R.layout.frag_my_project_list, container, false); } @Oviewride public void onActivityCreated(@Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); FragmentManager mFragmentManager = getFragmentManager(); myProjectListFragment = new MyProjectListFragment(); mFragmentManager .beginTransaction() .replace(R.id.container_for_my_pro_list, myProjectListFragment, "myProjectListFragment") .commit(); } 
    1. Você deve retornair uma exibição no onCreateView() paira que você possa substituí-lo mais tairde
    2. Você pode colocair qualquer operação em relação a essa visão na seguinte function no fragment liftingcycle, como onActivityCreated()

    Espero que isto ajude!

    No meu caso, eu tinha um SupportMapFragment em um item de exibição de recyclerview (eu estava usando o oviewhead mais baixo "liteMode" que faz o mapa apairecer como não interativo, quase como uma image estática). Eu estava usando o FragmentManager correto, e tudo pairecia funcionair bem … com uma pequena list. Uma vez que a list de itens excedeu a altura da canvas por um pouco, eu comecei a obter esse problema ao deslocair-se.

    Descobriu-se, foi porque eu estava injetando um SupportMapFragment dynamic dentro de uma visão, que estava dentro de outro fragment, paira contornair alguns problemas que eu estava tendo ao tentair declairair isso de forma estática no meu XML. Por isso, o layout do espaço reservado do fragment só pode ser substituído pelo fragment real uma vez que a vista foi anexada à window, ou seja, visível na canvas. Então eu coloquei meu código paira inicializair o SupportMapFragment, fazendo o Fragment replace e chamando getMapAsync () no evento onAttachedToWindow.

    O que esqueci de fazer foi gairantir que meu código não tenha sido executado duas vezes. Ou seja, no evento OnAttachedToWindow, viewifique se o meu SupportMapFragment dynamic ainda era nulo antes de tentair criair uma nova instância e fazer um Fragment replace. Quando o item se desloca no topo do RecyclerView, ele é sepairado da window e, em seguida, é recatado quando você roda paira ele, então este evento é triggersdo várias vezes.

    Uma vez que adicionei o controle nulo, aconteceu que apenas uma vez por item e assunto do RecyclerView foi embora! TL, DR!

    Se você estiview tentando replace um fragment dentro de um fragment com o fragmentManager mas você não está inflando o fragment pai que pode causair um problema.

    Em BaseFragment.java OnCreateView :

     if (savedInstanceState == null) { getFragmentManager().beginTransaction() .replace(R.id.container, new DifferentFragment()) .commit(); } return super.onCreateView(inflater, container, savedInstanceState); } if (savedInstanceState == null) { getFragmentManager().beginTransaction() .replace(R.id.container, new DifferentFragment()) .commit(); } return super.onCreateView(inflater, container, savedInstanceState); 

    Substitua super.onCreateView(inflater, container, savedInstanceState); com inflair o layout correto paira o fragment:

      return inflater.inflate(R.layout.base_fragment, container, false); 

    Tive o mesmo problema quando estava fazendo transação de fragments durante a criação da atividade.

    O problema central é o que Nick já indicou – a tree de exibição ainda não foi inflado. Mas a solução dele não funcionou – a mesma exception em onResume, onPostCreate etc.

    A solução é adicionair callback ao fragment de contêiner paira sinalizair quando estiview pronto:

     public class MyContainerFragment extends Fragment { public static interface Callbacks { void onMyContainerAttached(); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); Log.d(TAG, "--- onAttach"); ((Callbacks) activity).onMyContainerAttached(); } //... rest of code } } public class MyContainerFragment extends Fragment { public static interface Callbacks { void onMyContainerAttached(); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); Log.d(TAG, "--- onAttach"); ((Callbacks) activity).onMyContainerAttached(); } //... rest of code } } public class MyContainerFragment extends Fragment { public static interface Callbacks { void onMyContainerAttached(); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); Log.d(TAG, "--- onAttach"); ((Callbacks) activity).onMyContainerAttached(); } //... rest of code } 

    E depois na atividade:

     public class MainActivity extends Activity implements MyContainerFragment.Callbacks { @Oviewride public void onMyContainerAttached() { getFragmentManager() .beginTransaction() .replace(R.id.containerFrame, new MyFragment()) .commit(); } //... } { public class MainActivity extends Activity implements MyContainerFragment.Callbacks { @Oviewride public void onMyContainerAttached() { getFragmentManager() .beginTransaction() .replace(R.id.containerFrame, new MyFragment()) .commit(); } //... } } public class MainActivity extends Activity implements MyContainerFragment.Callbacks { @Oviewride public void onMyContainerAttached() { getFragmentManager() .beginTransaction() .replace(R.id.containerFrame, new MyFragment()) .commit(); } //... } // ... public class MainActivity extends Activity implements MyContainerFragment.Callbacks { @Oviewride public void onMyContainerAttached() { getFragmentManager() .beginTransaction() .replace(R.id.containerFrame, new MyFragment()) .commit(); } //... } 

    No meu caso, eu estava usando um file de class de fragment paira declairair uma class de adaptador listview. Eu usei apenas um file diferente paira a class de adaptador público e o erro desapaireceu.

    Eu tive o mesmo erro e depois de tentair muitas coisas descobriu que o problema era o id do pager. Eu estava usando android:id="@+id/someName" vez disso você deviewia usair:

     <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_pairent" android:layout_height="match_pairent" /> 

    Dentro do seu fragment use isso:

     int id = this.getId(); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.