Note that there are some explanatory texts on larger screens.

plurals
  1. POIllegalArgumentException: No view found for id for fragment --- ViewPager in ViewPager
    primarykey
    data
    text
    <p>I've met the problem that trouble me for days.</p> <p>There is a <code>ViewPager</code> in the main activity which holds 3 <code>Fragment</code>s as tab fragments. In the <strong>first</strong> fragment there is a <code>ListView</code> which holds some views, and which is the most important, another <code>ViewPager</code>. I want to hold some photos in the sub <code>ViewPager</code>, and use some more fragments here.</p> <p>Now there is the trouble:<br> When the <strong>first</strong> <code>Fragment</code> is stopped (The <strong>third</strong> fragment in the parent <code>ViewPager</code> is seen on screen) and resumed (the user switch to the <strong>second</strong> fragment), the app crashes and the debugger says:</p> <pre><code>java.lang.IllegalArgumentException: No view found for id 0x7f05008b (com.example.viewpager:id/sub_viewpager) for fragment ScreenSlidePageFragment </code></pre> <p>I've already use the <code>getChildFragmentManager()</code> as this is a situation of <a href="http://developer.android.com/about/versions/android-4.2.html#NestedFragments" rel="noreferrer">nested fragments</a>.</p> <p>Here is the key code of list adapter corresponding to the first fragment in the parent ViewPager:</p> <pre><code>@Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); switch (type) { case TYPE_BANNER: if (convertView == null) { convertView = mBannerView.getBannerView(parent); } mBannerView.update(convertView); break; case TYPE_ITEM: break; } return convertView; } </code></pre> <p>Here is the code of <code>mBannerView</code>:</p> <pre><code>public class BannerView { private static final DisplayImageOptions IMAGE_OPTIONS_SCALE_STRETCHED = new DisplayImageOptions.Builder() .cacheInMemory() .cacheOnDisc() .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) .build(); private FragmentActivity mActivity; private Fragment mFragment; private List&lt;Banner&gt; mBanners; private ScreenSlidePagerAdapter mPagerAdapter; private ViewPager mViewPager; public BannerView(FragmentActivity activity, Fragment fragment) { mActivity = activity; mFragment = fragment; } public void update(View convertView) { mViewPager = (ViewPager) convertView; if (mBanners != null &amp;&amp; !mBanners.isEmpty()) { if (mPagerAdapter == null) { mPagerAdapter = new ScreenSlidePagerAdapter(mFragment.getChildFragmentManager()); mViewPager.setAdapter(mPagerAdapter); } } mViewPager.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mOnBannerClickListener != null) { mOnBannerClickListener.onBannerClick(); } } }); } class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { public ScreenSlidePagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return new ScreenSlidePageFragment(mBanners.get(position).getImageUrl()); } @Override public int getCount() { return mBanners == null ? 0 : mBanners.size(); } } class ScreenSlidePageFragment extends Fragment { private String mUrl; ScreenSlidePageFragment(String url) { super(); mUrl = url; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.item_banner, container, false); if (view != null) { ImageView imageView = (ImageView) view.findViewById(R.id.item_banner_image); imageView.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); ImageLoader.getInstance().displayImage(mUrl, imageView, IMAGE_OPTIONS_SCALE_STRETCHED); } return view; } } } </code></pre> <p>Here is the detailed error list:</p> <pre><code>11-10 18:12:19.217 1444-1444/? E/MessageQueue-JNI﹕ java.lang.IllegalArgumentException: No view found for id 0x7f05008b (com.example.viewpager:id/sub_viewpager) for fragment ScreenSlidePageFragment{428d8ea0 #0 id=0x7f05008b} at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:919) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884) at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1514) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1280) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472) at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) at android.support.v4.view.ViewPager.populate(ViewPager.java:1068) at android.support.v4.view.ViewPager.populate(ViewPager.java:914) at android.support.v4.view.ViewPager$3.run(ViewPager.java:244) at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1761) at android.support.v4.view.ViewPager.onInterceptTouchEvent(ViewPager.java:1896) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1854) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2228) at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1471) at android.app.Activity.dispatchTouchEvent(Activity.java:2424) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2176) at android.view.View.dispatchPointerEvent(View.java:7571) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5399) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5370) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5493) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:182) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:132) at android.os.Looper.loop(Looper.java:124) at android.app.ActivityThread.main(ActivityThread.java:5289) at java.lang </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload