package com.wm.remusic.fragmentnet; import android.os.Bundle; import android.support.design.widget.TabLayout; 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.support.v7.app.ActionBar; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.bilibili.magicasakura.utils.ThemeUtils; import com.wm.remusic.R; import com.wm.remusic.fragment.AttachFragment; import java.util.ArrayList; import java.util.List; /** * Created by wm on 2016/4/11. */ public class TabNetPagerFragment extends AttachFragment implements ChangeView { //PreferencesUtility mPreferences; private ViewPager viewPager; private int page = 0; private ActionBar ab; private String[] title; private boolean isFirstLoad = true; public static final TabNetPagerFragment newInstance(int page, String[] title) { TabNetPagerFragment f = new TabNetPagerFragment(); Bundle bdl = new Bundle(1); bdl.putInt("page_number", page); f.setArguments(bdl); return f; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); viewPager.setCurrentItem(page); } @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate( R.layout.fragment_net_tab, container, false); viewPager = (ViewPager) rootView.findViewById(R.id.viewpager); if (viewPager != null) { setupViewPager(viewPager); viewPager.setOffscreenPageLimit(2); } final TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tabs); tabLayout.setTabTextColors(R.color.text_color, ThemeUtils.getThemeColorStateList(mContext, R.color.theme_color_primary).getDefaultColor()); tabLayout.setSelectedTabIndicatorColor(ThemeUtils.getThemeColorStateList(mContext, R.color.theme_color_primary).getDefaultColor()); tabLayout.setupWithViewPager(viewPager); return rootView; } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(recommendFragment == null){ return; } if(isVisibleToUser && isFirstLoad){ recommendFragment.requestData(); isFirstLoad = false; } } RecommendFragment recommendFragment; private void setupViewPager(ViewPager viewPager) { Adapter adapter = new Adapter(getChildFragmentManager()); recommendFragment = new RecommendFragment(); recommendFragment.setChanger(this); adapter.addFragment(recommendFragment, "新曲"); adapter.addFragment(new AllPlaylistFragment(), "歌单"); // adapter.addFragment(new NetFragment(), "主播电台"); adapter.addFragment(new RankingFragment(), "排行榜"); viewPager.setAdapter(adapter); } @Override public void onPause() { super.onPause(); } @Override public void onResume() { super.onResume(); } @Override public void onStart() { super.onStart(); } @Override public void changeTo(int page) { if (viewPager != null) viewPager.setCurrentItem(page); } static class Adapter extends FragmentStatePagerAdapter { private final List<Fragment> mFragments = new ArrayList<>(); private final List<String> mFragmentTitles = new ArrayList<>(); public Adapter(FragmentManager fm) { super(fm); } public void addFragment(Fragment fragment, String title) { mFragments.add(fragment); mFragmentTitles.add(title); } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitles.get(position); } } }