[英]Multiple ViewPager in same Fragment
我創建了兩個customViews類,每個customview類中都有視圖尋呼機。 現在,我想在同一活動中包括這兩個自定義視圖類。 問題是一個pagerview工作正常,但另一個pager沒有顯示任何視圖?
Anyone knowing how to add multiple viewpager in same activity.?
Please help.
我的customeViews是
public class TrainingResultsTopView extends LinearLayout {
Context context;
View rootView;
private ViewPager viewPager;
private TabLayout tabLayout;
private PieChartFragment monthFragment;
private PieChartFragment annualFragment;
private PieChartFragment allTimeFragment;
public TrainingResultsTopView(Context context) {
super(context);
initView(context);
}
public TrainingResultsTopView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public TrainingResultsTopView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
public TrainingResultsTopView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initView(context);
}
private void initView(Context context) {
this.context = context;
LayoutInflater inflater = LayoutInflater.from(context);
rootView = inflater.inflate(R.layout.dashboard_top_view, this, true);
viewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
viewPager.setOffscreenPageLimit(3);
tabLayout = (TabLayout) rootView.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setFragmentsToPager();
customizeTabs(inflater);
}
// private void bindDataToFragments() {
// monthFragment.bindLeaderboardData(leaderboardModelMonthly);
// annualFragment.bindLeaderboardData(leaderboardModelAnnually);
// allTimeFragment.bindLeaderboardData(leaderboardModelAllTime);
// }
private void setFragmentsToPager() {
ViewPagerAdapter adapter = new ViewPagerAdapter(((AppCompatActivity)context).getSupportFragmentManager());
monthFragment = new PieChartFragment();
annualFragment = new PieChartFragment();
allTimeFragment = new PieChartFragment();
adapter.addFragment(monthFragment, "Last 30 Days");
adapter.addFragment(annualFragment, "This Year");
adapter.addFragment(allTimeFragment, "All-Time");
viewPager.setAdapter(adapter);
}
private void customizeTabs(LayoutInflater inflater) {
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.setMargins(0,0,0,0);
TextView tv1 = (TextView) inflater.inflate(R.layout.textview_dashboard_tab, null);
tv1.setTypeface(Constants.appTypeface);
tv1.setText("Last 30 Days");
tv1.setGravity(Gravity.CENTER);
tv1.setLayoutParams(lp);
TextView tv2 = (TextView) inflater.inflate(R.layout.textview_dashboard_tab, null);
tv2.setTypeface(Constants.appTypeface);
tv2.setText("This Year");
tv2.setGravity(Gravity.CENTER);
tv2.setLayoutParams(lp);
TextView tv3 = (TextView) inflater.inflate(R.layout.textview_dashboard_tab, null);
tv3.setTypeface(Constants.appTypeface);
tv3.setText("All-Time");
tv3.setGravity(Gravity.CENTER);
tv3.setLayoutParams(lp);
tabLayout.getTabAt(0).setCustomView(tv1);
tabLayout.getTabAt(1).setCustomView(tv2);
tabLayout.getTabAt(2).setCustomView(tv3);
}
}
And
public class ActionBeaconRatingTopView extends LinearLayout {
Context context;
View rootView;
private CustomViewPager viewPager;
private TabLayout tabLayout;
private ActionBeaconRatingFragment monthFragment;
private ActionBeaconRatingFragment annualFragment;
private ActionBeaconRatingFragment allTimeFragment;
public ActionBeaconRatingTopView(Context context) {
super(context);
initView(context);
}
public ActionBeaconRatingTopView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public ActionBeaconRatingTopView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
public ActionBeaconRatingTopView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initView(context);
}
private void initView(Context context) {
this.context = context;
LayoutInflater inflater = LayoutInflater.from(context);
rootView = inflater.inflate(R.layout.dashboard_top_view, this, true);
viewPager = (CustomViewPager) rootView.findViewById(R.id.viewpager);
viewPager.setOffscreenPageLimit(3);
viewPager.setPagingEnabled(false);
tabLayout = (TabLayout) rootView.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setFragmentsToPager();
customizeTabs(inflater);
}
// private void bindDataToFragments() {
// monthFragment.bindLeaderboardData(leaderboardModelMonthly);
// annualFragment.bindLeaderboardData(leaderboardModelAnnually);
// allTimeFragment.bindLeaderboardData(leaderboardModelAllTime);
// }
private void setFragmentsToPager() {
ViewPagerAdapter adapter = new ViewPagerAdapter(((AppCompatActivity)context).getSupportFragmentManager());
monthFragment = new ActionBeaconRatingFragment();
annualFragment = new ActionBeaconRatingFragment();
allTimeFragment = new ActionBeaconRatingFragment();
adapter.addFragment(monthFragment, "Last 30 Days");
adapter.addFragment(annualFragment, "This Year");
adapter.addFragment(allTimeFragment, "All-Time");
viewPager.setAdapter(adapter);
}
private void customizeTabs(LayoutInflater inflater) {
LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.setMargins(0,0,0,0);
TextView tv1 = (TextView) inflater.inflate(R.layout.textview_dashboard_tab, null);
tv1.setTypeface(Constants.appTypeface);
tv1.setText("Last 30 Days");
tv1.setGravity(Gravity.CENTER);
tv1.setLayoutParams(lp);
TextView tv2 = (TextView) inflater.inflate(R.layout.textview_dashboard_tab, null);
tv2.setTypeface(Constants.appTypeface);
tv2.setText("This Year");
tv2.setGravity(Gravity.CENTER);
tv2.setLayoutParams(lp);
TextView tv3 = (TextView) inflater.inflate(R.layout.textview_dashboard_tab, null);
tv3.setTypeface(Constants.appTypeface);
tv3.setText("All-Time");
tv3.setGravity(Gravity.CENTER);
tv3.setLayoutParams(lp);
tabLayout.getTabAt(0).setCustomView(tv1);
tabLayout.getTabAt(1).setCustomView(tv2);
tabLayout.getTabAt(2).setCustomView(tv3);
}
我想在同一片段中添加這些視圖。 一次將可見。
試試本教程:< 在此處輸入鏈接描述
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.