package com.codeest.geeknews.ui.gank.fragment; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import com.codeest.geeknews.R; import com.codeest.geeknews.app.Constants; import com.codeest.geeknews.base.SimpleFragment; import com.codeest.geeknews.component.RxBus; import com.codeest.geeknews.model.event.SearchEvent; import com.codeest.geeknews.ui.gank.adapter.GankMainAdapter; import java.util.ArrayList; import java.util.List; import butterknife.BindView; /** * Created by codeest on 16/8/19. */ public class GankMainFragment extends SimpleFragment{ @BindView(R.id.tab_gank_main) TabLayout mTabLayout; @BindView(R.id.vp_gank_main) ViewPager mViewPager; public static String[] tabTitle = new String[]{"Android","iOS","前端","福利"}; List<Fragment> fragments = new ArrayList<>(); GankMainAdapter mAdapter; TechFragment androidFragment; TechFragment iOSFragment; TechFragment webFragment; GirlFragment girlFragment; @Override protected int getLayoutId() { return R.layout.fragment_gank_main; } @Override protected void initEventAndData() { androidFragment = new TechFragment(); iOSFragment = new TechFragment(); webFragment = new TechFragment(); girlFragment = new GirlFragment(); Bundle androidBundle = new Bundle(); androidBundle.putString(Constants.IT_GANK_TYPE, tabTitle[0]); androidBundle.putInt(Constants.IT_GANK_TYPE_CODE, Constants.TYPE_ANDROID); androidFragment.setArguments(androidBundle); Bundle iosBundle = new Bundle(); iosBundle.putString(Constants.IT_GANK_TYPE, tabTitle[1]); iosBundle.putInt(Constants.IT_GANK_TYPE_CODE, Constants.TYPE_IOS); iOSFragment.setArguments(iosBundle); Bundle webBundle = new Bundle(); webBundle.putString(Constants.IT_GANK_TYPE, tabTitle[2]); webBundle.putInt(Constants.IT_GANK_TYPE_CODE, Constants.TYPE_WEB); webFragment.setArguments(webBundle); fragments.add(androidFragment); fragments.add(iOSFragment); fragments.add(webFragment); fragments.add(girlFragment); mAdapter = new GankMainAdapter(getChildFragmentManager(),fragments); mViewPager.setAdapter(mAdapter); //TabLayout配合ViewPager有时会出现不显示Tab文字的Bug,需要按如下顺序 mTabLayout.addTab(mTabLayout.newTab().setText(tabTitle[0])); mTabLayout.addTab(mTabLayout.newTab().setText(tabTitle[1])); mTabLayout.addTab(mTabLayout.newTab().setText(tabTitle[2])); mTabLayout.addTab(mTabLayout.newTab().setText(tabTitle[3])); mTabLayout.setupWithViewPager(mViewPager); mTabLayout.getTabAt(0).setText(tabTitle[0]); mTabLayout.getTabAt(1).setText(tabTitle[1]); mTabLayout.getTabAt(2).setText(tabTitle[2]); mTabLayout.getTabAt(3).setText(tabTitle[3]); } public void doSearch(String query) { switch (mViewPager.getCurrentItem()) { case 0: RxBus.getDefault().post(new SearchEvent(query, Constants.TYPE_ANDROID)); break; case 1: RxBus.getDefault().post(new SearchEvent(query, Constants.TYPE_IOS)); break; case 2: RxBus.getDefault().post(new SearchEvent(query, Constants.TYPE_WEB)); break; case 3: RxBus.getDefault().post(new SearchEvent(query, Constants.TYPE_GIRL)); break; } } }