package com.wm.remusic.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; 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.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.bilibili.magicasakura.utils.ThemeUtils; import com.wm.remusic.R; import com.wm.remusic.activity.LocalSearchActivity; import com.wm.remusic.uitl.CommonUtils; import java.util.ArrayList; import java.util.List; /** * Created by wm on 2016/1/17. */ public class TabPagerFragment extends AttachDialogFragment { //PreferencesUtility mPreferences; private ViewPager viewPager; private int page = 0; private ActionBar ab; private String[] title; public static final TabPagerFragment newInstance(int page, String[] title) { TabPagerFragment f = new TabPagerFragment(); Bundle bdl = new Bundle(1); bdl.putInt("page_number", page); bdl.putStringArray("title", title); 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); // mPreferences = PreferencesUtility.getInstance(mContext); if (getArguments() != null) { page = getArguments().getInt("page_number"); title = getArguments().getStringArray("title"); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate( R.layout.fragment_tab, container, false); Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.toolbar); ((AppCompatActivity) mContext).setSupportActionBar(toolbar); toolbar.setPadding(0, CommonUtils.getStatusHeight(mContext), 0, 0); ab = ((AppCompatActivity) mContext).getSupportActionBar(); ab.setHomeAsUpIndicator(R.drawable.actionbar_back); ab.setDisplayHomeAsUpEnabled(true); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mContext.onBackPressed(); } }); ImageView search = (ImageView) rootView.findViewById(R.id.bar_search); search.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Intent intent = new Intent(mContext, LocalSearchActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); mContext.startActivity(intent); } }); viewPager = (ViewPager) rootView.findViewById(R.id.viewpager); if (viewPager != null) { setupViewPager(viewPager); viewPager.setOffscreenPageLimit(3); } final TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.setTabTextColors(R.color.text_color, ThemeUtils.getThemeColorStateList(mContext, R.color.theme_color_primary).getDefaultColor()); // tabLayout.setTabTextColors(ThemeUtils.getThemeColorStateList(mContext,R.color.theme_color_primary)); // try { // Field mField = TableLayout.class.getDeclaredField("mTabTextColors"); // mField.setAccessible(true); // mField.set(tabLayout,ThemeUtils.getThemeColorStateList(mContext,R.color.theme_color_primary)); // } catch (NoSuchFieldException e) { // e.printStackTrace(); // } catch (IllegalArgumentException e) { // e.printStackTrace(); // } catch (IllegalAccessException e) { // e.printStackTrace(); // } tabLayout.setSelectedTabIndicatorColor(ThemeUtils.getThemeColorStateList(mContext, R.color.theme_color_primary).getDefaultColor()); return rootView; } private void setupViewPager(ViewPager viewPager) { Adapter adapter = new Adapter(getChildFragmentManager()); adapter.addFragment(new MusicFragment(), title[0]); adapter.addFragment(new ArtistFragment(), title[1]); adapter.addFragment(new AlbumFragment(), title[2]); adapter.addFragment(new FolderFragment(), title[3]); viewPager.setAdapter(adapter); } @Override public void onPause() { super.onPause(); } @Override public void onResume() { super.onResume(); if (title[0].equals("单曲")) ab.setTitle("本地音乐"); } @Override public void onStart() { super.onStart(); } 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) { if(mFragments.size() > position) return mFragments.get(position); return null; } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitles.get(position); } @Override public void restoreState(Parcelable state, ClassLoader loader) { // don't super ! } } }