Aucune vue n'a été trouvée pour id 0x7f0e00d5 (com.example.page:id/dialogViewpager) pour fragment OneFragment {92c0220 # 1 id = 0x7f0e00d5 android: switcher: 2131624149: 0}

Je souhaite afficher la tabulation dans la boîte de dialogue. J'ai un fichier de classe principale qui s'étend à FragmentActivity et à l'intérieur que je montre un dialogue en appelant cette méthode comme ci-dessous.

private void dialogDictionary() { final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dialog_dictionary); dialog.setCancelable(true); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); ImageView imgDialogDictionaryClose = (ImageView) dialog.findViewById(R.id.imgDialogDictionaryClose); imgDialogDictionaryClose.setOnClickListener(v -> dialog.dismiss()); ViewPager viewPager = (ViewPager) dialog.findViewById(R.id.dialogViewpager); setupViewPager(viewPager); TabLayout tabLayout = (TabLayout) dialog.findViewById(R.id.dialogTabs); tabLayout.setupWithViewPager(viewPager); dialog.show(); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new OneFragment(), "ONE"); adapter.addFragment(new TwoFragment(), "TWO"); adapter.addFragment(new ThreeFragment(), "THREE"); viewPager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } 

Lorsque je lance une application, je reçois cette erreur.

  • Comment gérer correctement la rotation de l'écran avec un ViewPager et des fragments imbriqués?
  • Android: affiche une boîte de dialogue personnalisée au centre du conteneur
  • Afficheur de fragment de visuel dans un fragment
  • Dialogue étroit d'Android après 5 secondes?
  • IllegalStateException: <MyFragment> n'est pas actuellement dans le FragmentManager
  • Comment ajouter la fonction "Retourner" dans WebView à l'intérieur de Fragment?
  •   E/FragmentManager: No view found for id 0x7f0e00d5 (com.example.page:id/dialogViewpager) for fragment OneFragment{eb2a3cc #1 id=0x7f0e00d5 android:switcher:2131624149:0} E/FragmentManager: Activity state: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.page, PID: 2710 java.lang.IllegalArgumentException: No view found for id 0x7f0e00d5 (com.example.page:id/dialogViewpager) for fragment OneFragment{eb2a3cc #1 id=0x7f0e00d5 android:switcher:2131624149:0} at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1107) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1643) at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:679) at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143) at android.support.v4.view.ViewPager.populate(ViewPager.java:1272) at android.support.v4.view.ViewPager.populate(ViewPager.java:1120) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1646) at android.view.View.measure(View.java:18788) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18788) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:18788) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:18788) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643) at android.view.View.measure(View.java:18788) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1191) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:606) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

    Dialog_dictionary.xml

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="20dp" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:background="@drawable/dialog_title_bar"> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusableInTouchMode="true" /> <EditText android:id="@+id/edtDictionarySearch" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="25dp" android:layout_marginRight="10dp" android:layout_toLeftOf="@+id/imgDialogDictionaryClose" android:background="@android:color/transparent" android:drawableLeft="@mipmap/icn_search_white" android:drawablePadding="10dp" android:hint="@string/search" android:singleLine="true" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="@dimen/dialog_search_text_size" /> <ImageButton android:id="@+id/imgDialogDictionaryClose" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:background="@android:color/transparent" android:paddingLeft="10dp" android:paddingRight="10dp" android:src="@mipmap/icn_close" /> </RelativeLayout> <android.support.design.widget.TabLayout android:id="@+id/dialogTabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabGravity="fill" app:tabMode="fixed" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/dialog_bg_area" android:padding="@dimen/dialog_inner_padding"> <android.support.v4.view.ViewPager android:id="@+id/dialogViewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </RelativeLayout> </LinearLayout> 

    OneFragment.java

     public class OneFragment extends Fragment { public OneFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_one, container, false); } } 

    Fragment_one.xml

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Tab One" android:textSize="50dp" /> </LinearLayout> 

  • Les éléments de la barre d'action sont en double
  • Ne pas copier les pages ViewPager
  • Détecter l'onglet ViewPager à l'intérieur de Fragment
  • Android: Fragments, SQLite et chargeurs
  • Barre d'outils Android Ajout d'éléments de menu pour différents fragments
  • Séparateur d'ombres entre fragments Android
  • 2 Solutions collect form web for “Aucune vue n'a été trouvée pour id 0x7f0e00d5 (com.example.page:id/dialogViewpager) pour fragment OneFragment {92c0220 # 1 id = 0x7f0e00d5 android: switcher: 2131624149: 0}”

    Je pense que de ce que je me souvient, la vue de contenu pour Dialog n'est pas ajoutée immédiatement. Il est ajouté au moment où la boîte de dialogue s'affiche. Ce que vous pourriez essayer est de créer une sous-classe de Dialog et d'ajouter un Messager de mise en page globale dans votre sous-classe Dialog.

    Lorsque le GlobalLayoutListener se déclenche, prenez vos références à ce stade, puis supprimez l'écouteur de mise en page globale afin qu'il ne continue pas à recommencer.

     // in OnCreate() getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener(){ @Override public void onGlobalLayout() { //get references for viewPager viewPager = findViewById(R.id.dialogViewpager) //remove listener so it doesn't fire again getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); 

    Mettre à jour:

    En fait, de ce que je pense, vous pouvez simplement créer une boîte de dialogue normale et ajouter l'écouteur de mise en page à cela

     //note that dialog will need to be final to access it //in onGlobalLayout below or have a global reference in your class dialog.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener(){ @Override public void onGlobalLayout() { //get references for viewPager viewPager = findViewById(R.id.dialogViewpager) //remove listener so it doesn't fire again dialog.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); 

    Bien, ça me semble bien … ici, Google dit d'éviter d'entacher directement Dialog … Utilisez ses sous-classes … Je pense que ce que vous essayez de faire peut être fait par DialogFragment … J'espère que cela aidera

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.