Intereting Posts
एंड्रॉइड, ट्विटर, 'यूएस का अनुसरण करें' एक्सीलरोमीटर और जीरोस्कोप के साथ फोन की कार की गति कैसे मापें? एंड्रॉइड डेवलपमेंट – लेआउट xml फाइलों के लिए एक्लिप्स आईडीई में 'लापता विषय त्रुटि' एंड्रॉइड एप्लिकेशन में कैनवास कोड से छवि कैसे बचाई जा सकती है? ऐप आपके सभी उपकरणों के साथ असंगत है स्मृति में बड़ी संख्या में एंड्रॉइड पीजीजी चित्र क्रॉस-प्लेटफ़ॉर्म ऐप के लिए मूल निवासी प्रतिक्रिया में index.js (index.ios.js, index.android.js) का उपयोग कैसे करें? बंद या परिपत्र क्षैतिज सूची दृश्य एंड्रॉइड स्पिनर के लिए एक सेट एरर () बनाना एंड्रॉइड के लिए फायरबसे – डब्लू / पर्सिस्टेंट कनेक्शन: पीसी – प्रदान किए गए प्रमाणीकरण क्रेडेंशियल अमान्य हैं I एंड्रॉइड स्टूडियो 2.2 और जैक Avira एंटीवायरस द्वारा अवरुद्ध कर रहे हैं कैसे ठीक करें 22.0.1 \ aapt.exe '' गैर-शून्य निकास मान 1 के साथ समाप्त एंड्रॉइड- ऑन अटैच (प्रसंग) एपीआई 23 के लिए नहीं बुलाया हर समय कीवर्ड के लिए सुनना, जैसे 4.4 पर "ओके गूगल" "एंड्रॉइड ऐप" में कुछ सी कोड डिबग करने का प्रयास करते समय "अज्ञात एप्लिकेशन एबीआई" प्राप्त करना

Android ViewPager गलत टुकड़े लोड हो रहा है

इसलिए मैं अपनी मुख्य गतिविधि पर काम कर रही मेरी मुख्य नेविगेशन बार के नीचे एक टैब बार और लेआउट प्राप्त करने की कोशिश कर रहा हूं।

मैं सही टुकड़ा लोड करने के लिए ViewPager / TabLayout (अनिश्चित जो समस्या का कारण, इस के लिए नया) प्राप्त करने के लिए प्रतीत नहीं कर सकता। मैंने एक टन दस्तावेजों के माध्यम से पढ़ा है और 1 से अधिक ट्यूटोरियल की जांच की है कि क्या मैं इसे सही ढंग से कर रहा हूं और ऐसा लगता है कि मैं यही एक ही काम कर रहा हूं …

मेरे OnTabSelectedListener लिए TabLayout टैब परिवर्तन को ठीक से देख रहा है, और OnTabSelected इम कॉलिंग viewPager.setCurrentItem(tab.getPosition()) को मेरी व्यूअरज़र आइटम सेट करने का प्रयास करने के लिए, लेकिन यह अभी भी काम नहीं कर रहा है। पहले लोड पर, यह पहली और दूसरी टैब को लोड करता है (मैं क्रिएट विधियों पर टुकड़ों से भेजा गया एपीआई अनुरोध के माध्यम से देख सकता हूं), और जब मैं अन्य टैब पर क्लिक करता हूं, तो यह लगातार गलत टुकड़ा लोड करता है, कभी-कभी एक भी लोड नहीं होता है !

निश्चित नहीं है कि यह संबंधित है, लेकिन मुझे ये चेतावनी मिल रही है क्योंकि मैं टैब स्विच करता हूं:

03-03 16:24:22.940 16967-16967/com.sampleapp.app W/FragmentManager: moveToState: Fragment state for BlankFragment3{efddbec #2 id=0x7f0c007b android:switcher:2131492987:2} not updated inline; expected state 3 found 2

मैं बिल्ड टूल्स संस्करण 23.0.2 और निम्न निर्भरता का उपयोग कर रहा हूं:

 compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.android.support:support-v4:23.1.1' 

यह मेरे मुख्य एनएवी बार के लिए मेरा लेआउट कोड है:

 <?xml version="1.0" encoding="utf-8"?> 

 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar1" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar2" android:layout_width="match_parent" android:layout_height="10dp" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_input_add" /> </android.support.design.widget.CoordinatorLayout> 

एक से अधिक ट्यूटोरियल के अनुसार, यहां कोड है जो मैं अपने एडेप्टर के लिए उपयोग कर रहा हूं

 public class TabsAdapter extends FragmentPagerAdapter{ private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public TabsAdapter(FragmentManager fm) { super(fm); } public void addFrag(Fragment fragment, String title){ mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } 

और यहां बताया गया है कि कैसे मैं अपना दृश्यपटल और टैबलेट स्थापित करता हूं

मुख्य गतिविधि का क्रिएट:

  ViewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(mViewPager); // Method defined below TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); tabLayout.setupWithViewPager(mViewPager); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { mViewPager.setCurrentItem(tab.getPosition()); Log.w("Tab Selection", String.valueOf(tab.getPosition())); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); 

और अंत में, मेरे setupViewPager विधि:

 private void setupViewPager(ViewPager viewPager) { TabsAdapter adapter = new TabsAdapter(getSupportFragmentManager()); adapter.addFrag(new BlankFragment1(), "One"); adapter.addFrag(new BlankFragment2(), "Two"); adapter.addFrag(new BlankFragment3(), "Three"); viewPager.setAdapter(adapter); } 

अगर कोई इस के साथ कुछ भी गलत देखता है, तो कृपया मुझे बताएं, उचित टुकड़े लोड करने के लिए मुझे ये झकना टैब मिल रहा है।

समय से आगे धन्यवाद!

Solutions Collecting From Web of "Android ViewPager गलत टुकड़े लोड हो रहा है"

इस कोड दोस्त के साथ प्रयास करें: डी

ViewPager एडाप्टर

 public class PageAdapter extends FragmentStatePagerAdapter { int mNumOfTabs; public PageAdapter(FragmentManager fm,int numTabs) { super(fm); this.mNumOfTabs = numTabs; } @Override public Fragment getItem(int position) { switch (position) { case 0: RemindsTab remindsTab = new RemindsTab(); return remindsTab; case 1: TasksTab tasksTab = new TasksTab(); return tasksTab; case 2: QuicklyNotesTab quicklyNotesTab = new QuicklyNotesTab(); return quicklyNotesTab; default: return null; } } @Override public int getCount() { return mNumOfTabs; } } 

और उन टैब के लिए मुख्य कोड में मेरा कोड:

  final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); tabLayout.addTab(tabLayout.newTab().setText("Recordatorios")); tabLayout.addTab(tabLayout.newTab().setText("Tareas")); tabLayout.addTab(tabLayout.newTab().setText("Notas Rapidas")); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); final PagerAdapter adapter = new PageAdapter(getSupportFragmentManager(),tabLayout.getTabCount()); viewPager.setAdapter(adapter); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); 

आशा है कि आप अपनी समस्या को हल कर सकते हैं 🙂

  1. आपको दो सूची दृश्य में अलग करने की आवश्यकता नहीं है इसे एक कक्षा में करने का प्रयास करें

कक्षा जोड़ें

 class FragmentHolder{ Fragment fragment; String title; public FragmentHolder(Fragment fragmentm String title){ this.fragment = fragment; this.title = title; } } 

और एडाप्टर में

 public class TabsAdapter extends FragmentPagerAdapter{ private final List<FragmentHolder> mFragmentList = new ArrayList<>(); public TabsAdapter(FragmentManager fm) { super(fm); } public void addFrag(FragmentHolder fragmentHolder){ mFragmentList.add(fragmentHolder); } @Override public Fragment getItem(int position) { return mFragmentList.get(position).fragment; } @Override public int getCount() { return mFragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position).title; } } 

सबसे पहले आपको यह जानना होगा कि कैसे फ्रेग्मेंटपेज एडॉपर काम करता है फ्रैग्मेंटपेगर एडाप्टर प्रारंभ में दो (2) टुकड़े, प्रथम इंडेक्स (0) टुकड़ा और दूसरा अगला सूचकांक (1) टुकड़ा का संक्षिप्त रूप देता है। तो कोड से लड़ने की कोशिश मत करो, बस डिफ़ॉल्ट प्लगइन के अनुसार अपना लॉगिन बदलें।

1) इस लाइन को गतिविधि में जोड़ें

 viewPager.setOffscreenPageLimit("your number of fragment"); 

2) इसे अपने टुकड़े में जोड़ें, ताकि आप पृष्ठों के बीच उपयोगकर्ता स्विच करते समय टुकड़ा कार्रवाई को नियंत्रित कर सकें

  // pause video and other list when user switch fragment pager public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (this.isVisible()) { if (!isVisibleToUser) // If we are becoming invisible, then... { mPlayer.pause(); final SharedPreferences.Editor editor= pref.edit(); editor.putBoolean("PlayerPause", true); editor.putInt("videotime",mPlayer.getCurrentTimeMillis()); editor.commit(); Log.e("Video "," serUserVisibleHint not visible to User");//pause or stop video } if (isVisibleToUser) // If we are becoming visible, then... { Log.e("Video "," serUserVisibleHint Visible to User"); //play your video } } } 

@ Riptyde4, मैंने जो किया है वह सिर्फ क्लास को बदलने के लिए है जो टैबएडैप्टर द्वारा फ्रैग्मेंटपेगर एडाप्टर से फ्रैगमेंटस्टेट पेजर एडाप्टर से बढ़ाया जाता है जो कि दृश्यपेज में अलग-अलग राज्य परिवर्तन को पता लगाता है। मैंने यह किया और यह पूरी तरह से काम करता है