2017-08-16 46 views

回答

0

是的,你可以:

<android.support.design.widget.TabLayout 
       android:id="@+id/htab_tabs" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_gravity="bottom" 
       android:background="@color/colorDivider" 
       app:tabIndicatorColor="@android:color/white" /> 

<android.support.v4.view.ViewPager 
     android:id="@+id/htab_viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

public class MainActivity extends AppCompatActivity { 
    private ViewPager viewPager; 
    private TabLayout tabLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     viewPager = (ViewPager) findViewById(R.id.htab_viewpager); 
     setupViewPager(viewPager); 

     tabLayout = (TabLayout) findViewById(R.id.htab_tabs); 
     tabLayout.setupWithViewPager(viewPager); 
    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     //jsonResArray get from web service 
     for (int i = 0; i < jsonResArray.size(); i++) { 
      adapter.addFrag(new NewFragment(jsonResArray.get(i)), jsonResArray.get(i).getName()); 
     } 
     viewPager.setAdapter(adapter); 
    } 

    static class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List <Fragment> mFragmentList = new ArrayList < >(); 
     private final List <String> mFragmentTitleList = new ArrayList < >(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFrag(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
}