2017-07-27 10 views
0

私は2つのcustomViewsクラスを作成しました。各customviewクラスにページャーを表示しています。 これらの2つのカスタム・ビュー・クラスを同じアクティビティーに組み込むことにしました。問題は1つのpagerviewが正常に動作していますが、もう1つのページャーには何も表示されていませんか?同じフラグメントの複数の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); 
    } 

です。一度に1つが表示されます。

答えて

関連する問題