0
我已經創建了兩個customViews類,它們在每個customview類中都有view pager。 現在我想在同一個活動中包含這兩個自定義視圖類。問題是一個pagerview工作正常,但其他傳呼機沒有顯示任何視圖?同一片段中的多個ViewPager
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);
}
我想在同一片段添加這些觀點。一次會看到一個。