大佬教程收集整理的这篇文章主要介绍了Android TabLayout ViewPager不在backstack上膨胀标签片段,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_419_8@
拿着片段@H_419_8@
@H_419_8@
public class FragIn@L_813_9@mainView extends Fragment implements CGFragment { private CGController controller; private CGFragment thisFragment; @Bind(R.id.inBoxViewPager)ViewPager inBoxViewPager; @Bind(R.id.inBoxTabs)TabLayout inBoxTabLayout; @Bind(R.id.inBox_progress_wheel)ProgressWheel inBoxProgressWheel; public FragIn@L_813_9@mainView(){} @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceStatE) { View rootView = inflater.inflate(R.layout.fragment_inBox_mainview,container,falsE); ButterKnife.bind(this,rootView); thisFragment = this; Globals g = Globals.geTinstance(); /** Show loading spinner */ this.inBoxProgressWheel.setBarColor(ContextCompat.getColor(controller.getContext(),g.getUserObject().getUserThemeColor())); this.inBoxProgressWheel.setVisibility(View.VISIBLE); /** Display the profile information based off the ID */ controller.displayInBox(thisFragment); return rootView; } public void hideProgressSpinner() { this.inBoxProgressWheel.setVisibility(View.GONE); } public ViewPager geTinBoxViewPager() { return this.inBoxViewPager; } public TabLayout geTinBoxTabLayout() { return this.inBoxTabLayout; } }
@H_419_8@
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://scheR_859_11845@as.android.com/apk/res/android" xmlns:app="http://scheR_859_11845@as.android.com/apk/res-auto" xmlns:wheel="http://scheR_859_11845@as.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.TabLayout android:id="@+id/inBoxTabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="scrollable" /> <com.pnikosis.materialishprogress.ProgressWheel android:id="@+id/inBox_progress_wheel" android:layout_width="80dp" android:layout_height="80dp" android:layout_gravity="center" wheel:matProg_barColor="#5588FF" wheel:matProg_progressIndeterminate="true" android:visibility="gone"/> <android.support.v4.view.ViewPager android:id="@+id/inBoxViewPager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" android:BACkground="@android:color/white" /> </LinearLayout>
@H_419_8@
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout android:id="@+id/main_content" xmlns:android="http://scheR_859_11845@as.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.baoyz.widget.PullrefreshLayout android:id="@+id/tabPullrefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <view android:id="@+id/tabRecyclerHolder" class="android.support.v7.widget.RecyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="8dp" android:paddingBottom="8dp" android:cli@R_673_10866@adding="false" android:layout_centerInParent="true"/> </com.baoyz.widget.PullrefreshLayout> <com.melnykov.fab.FloaTingActionButton android:id="@+id/tabFab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="16dp" android:src="@mipmap/ic_add_white"/> </android.support.design.widget.CoordinatorLayout> public class TabRecyclerHolder extends Fragment { @Bind(R.id.tabRecyclerHolder) RecyclerView tabRecyclerHolder; @Bind(R.id.tabPullrefresh) PullrefreshLayout tabPullrefresh; @Bind(R.id.tabFab) FloaTingActionButton recyclerFab; private String tabtitle = "title"; public TabRecyclerHolder(){} @Override public View onCreateView(LayoutInflater inflater,Bundle savedInstanceStatE) { View rootView = inflater.inflate(R.layout.tab_recycler_holder,falsE); ButterKnife.bind(this,rootView); recyclerFab.hide(false); tabPullrefresh.setrefreshStyle(PullrefreshLayout.STYLE_MATERIAL); return rootView; } public RecyclerView getTabRecyclerHolder() { return this.tabRecyclerHolder; } public FloaTingActionButton getRecyclerFab() { return this.recyclerFab; } public String getTabtitle() { return this.tabtitle; } public void setTabtitle(String titlE) { this.tabtitle = title; } public PullrefreshLayout getTabPullrefresh() { return this.tabPullrefresh; } }
@H_419_8@
public class TabPagerAdapter extends FragmentStatePagerAdapter { private CGController controller; private List<Object> items; public TabPagerAdapter(FragmentManager fm,CGController controller,List<Object> items) { super(fm); this.controller = controller; this.items = items; } @Override public int getCount() { return items.size(); } @Override public Fragment getItem(int num) { return (TabRecyclerHolder)items.get(num); } @Override public String getPagetitle(int num){ return ((TabRecyclerHolder)items.get(num)).getTabtitle(); } }
@H_419_8@
public void viewInBox() { /** Set up the views */ receivedHolder = new TabRecyclerHolder(); receivedHolder.setTabtitle(Constants.TAB_INBox_RECEIVED); sentHolder = new TabRecyclerHolder(); sentHolder.setTabtitle(Constants.TAB_INBox_SENT); tabs.add(receivedHolder); tabs.add(sentHolder); /** Set up the tabs */ final ViewPager inBoxViewPager = inBoxFragment.geTinBoxViewPager(); TabLayout inBoxTabLayout = inBoxFragment.geTinBoxTabLayout(); /** Set the adapter for the view pager */ inBoxViewPager.setAdapter(new TabPagerAdapter(inBoxFragment.getChildFragmentManager(),controller,tabs)); /** set up the tab look and feel */ inBoxTabLayout.setTabGravity(TabLayout.GRAVITY_FILL); inBoxTabLayout.setTabMode(TabLayout.MODE_FIXED); inBoxViewPager.setOffscreenPageLimit(3); inBoxViewPager.addOnPagechangelistener(new TabLayout.TabLayoutOnPagechangelistener(inBoxTabLayout)); inBoxTabLayout.setOnTabSELEctedListener(new TabLayout.onTabSELEctedListener() { @Override public void onTabSELEcted(TabLayout.Tab tab) { inBoxViewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnSELEcted(TabLayout.Tab tab) { } @Override public void onTabReSELEcted(TabLayout.Tab tab) { } }); /** And,display! */ inBoxTabLayout.setupWithViewPager(inBoxViewPager); receivedAdapter = new Recyclerlistadapter(controller,items); final RecyclerView receivedList = receivedHolder.getTabRecyclerHolder(); receivedList.setLayoutManager(new linearlayoutmanager(controller.getContext())); receivedList.setAdapter(receivedAdapter); }
我错过了一些代码,但它与问题无关.@H_874_27@最初查看片段时,代码可以正常工作.但是,由于我的应用程序包含单个活动,并且只是替换导航到的每个片段的内容视图,因此每个片段都会添加到后端堆栈,然后在按下后退按钮时弹出.我的问题是,当导航回到此片段时,选项卡内的视图不会被充气,这意味着无法访问任何元素(因此应用程序在尝试在recyclerview中显示数据时崩溃等).@H_419_8@
我看过这个问题:TabLayout ViewPager Not Loading When Using Backstack并实现了它的建议(在设置寻呼机适配器时使用getChildFragmentManager())但是这并没有解决我的问题.@H_419_8@
帮助将不胜感激!@H_419_8@
@H_419_8@
所以你会有这样的事情@H_419_8@
@H_419_8@
@Override public View onCreateView(LayoutInflater inflater,Bundle savedInstanceStatE) { return inflater.inflate(R.layout.tab_recycler_holder,falsE); }
然后@H_419_8@
@H_419_8@
@Override public void onViewCreated (View view,Bundle savedInstanceStatE){ ButterKnife.bind(this,view); recyclerFab.hide(false); tabPullrefresh.setrefreshStyle(PullrefreshLayout.STYLE_MATERIAL); ...
看看它是否有帮助@H_419_8@
以上是大佬教程为你收集整理的Android TabLayout ViewPager不在backstack上膨胀标签片段全部内容,希望文章能够帮你解决Android TabLayout ViewPager不在backstack上膨胀标签片段所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。