package com.xiaweizi.qnews.fragment; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.xiaweizi.qnews.R; import net.lucode.hackware.magicindicator.MagicIndicator; import net.lucode.hackware.magicindicator.ViewPagerHelper; import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView; import butterknife.BindView; import butterknife.ButterKnife; /** * 新闻数据 fragment * 工程名: QNews * 包名: com.xiaweizi.qnews.fragment * 类名: NewsFragment * 创建者: 夏韦子 * 创建日期: 2017/2/10 * 创建时间: 10:58 */ public class NewsFragment extends Fragment { @BindView (R.id.main_viewpager) ViewPager mainViewpager; //新闻数据 ViewPager private String[] types; //顶部 tab 英文内容数组 private String[] typesCN; //顶部 tab 中文内容数组 private NewsViewPagerAadpter newsViewPagerAadpter; //ViewPager 适配器 @Nullable @Override public View onCreateView( LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_newsdata, null); ButterKnife.bind(this, view); types = getResources().getStringArray(R.array.news_type_en); typesCN = getResources().getStringArray(R.array.news_type_cn); //初始化ViewPager,设置适配器 newsViewPagerAadpter = new NewsViewPagerAadpter(getActivity().getSupportFragmentManager()); mainViewpager.setAdapter(newsViewPagerAadpter); /*************************** 顶部指示器数据加载 ***************************/ MagicIndicator magicIndicator = (MagicIndicator) view.findViewById(R.id.magic_indicator); CommonNavigator commonNavigator = new CommonNavigator(getActivity()); commonNavigator.setAdapter(new CommonNavigatorAdapter() { @Override public int getCount() { return typesCN == null ? 0 : types.length; } @Override public IPagerTitleView getTitleView(Context context, final int index) { ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context); colorTransitionPagerTitleView.setNormalColor(Color.BLACK); colorTransitionPagerTitleView.setSelectedColor(Color.RED); colorTransitionPagerTitleView.setText(typesCN[index]); colorTransitionPagerTitleView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mainViewpager.setCurrentItem(index); } }); return colorTransitionPagerTitleView; } @Override public IPagerIndicator getIndicator(Context context) { LinePagerIndicator indicator = new LinePagerIndicator(context); indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); return indicator; } }); magicIndicator.setNavigator(commonNavigator); ViewPagerHelper.bind(magicIndicator, mainViewpager); /******************************************************/ return view; } private class NewsViewPagerAadpter extends FragmentStatePagerAdapter { public NewsViewPagerAadpter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { //根据位置创建相应的fragment return new NewsDetailFragment(types[position]); } @Override public int getCount() { return types.length; } } }