package com.aries.library.fast.demo.module.activity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; import com.aries.library.fast.demo.R; import com.aries.library.fast.demo.constant.ApiConstant; import com.aries.library.fast.demo.constant.SPConstant; import com.aries.library.fast.manager.LoggerManager; import com.aries.library.fast.manager.TabLayoutManager; import com.aries.library.fast.module.fragment.FastTitleFragment; import com.aries.library.fast.util.SPUtil; import com.aries.ui.util.StatusBarUtil; import com.aries.ui.view.tab.SegmentTabLayout; import com.aries.ui.view.tab.SlidingTabLayout; import com.aries.ui.view.title.TitleBarView; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import butterknife.BindView; /** * @Author: AriesHoo on 2018/7/13 17:38 * @E-Mail: [email protected] * @Function: 活动页--Retrofit演示 * @Description: */ public class ActivityFragment extends FastTitleFragment { @BindView(R.id.vp_contentFastLib) ViewPager vpContent; private List<Fragment> listFragment = new ArrayList<>(); private SegmentTabLayout mSegmentTab; private SlidingTabLayout mSlidingTab; private View viewSliding; private View viewSegment; private boolean isSliding = true; public static ActivityFragment newInstance() { Bundle args = new Bundle(); ActivityFragment fragment = new ActivityFragment(); fragment.setArguments(args); return fragment; } @Override public void beforeSetContentView() { super.beforeSetContentView(); LoggerManager.d(TAG, "refreshActivityTab:" + isSliding); } @Override public void setTitleBar(TitleBarView titleBar) { isSliding = (boolean) SPUtil.get(mContext, SPConstant.SP_KEY_ACTIVITY_TAB_SLIDING, true); if (isSliding && viewSliding == null) { viewSliding = View.inflate(mContext, R.layout.layout_activity_sliding, null); mSlidingTab = viewSliding.findViewById(R.id.tabLayout_slidingActivity); } else if (!isSliding && viewSegment == null) { viewSegment = View.inflate(mContext, R.layout.layout_activity_segment, null); mSegmentTab = viewSegment.findViewById(R.id.tabLayout_segment); } LinearLayout center = titleBar.getLinearLayout(Gravity.CENTER); if (isSliding) { if (center.indexOfChild(viewSliding) == -1) { titleBar.addCenterAction(titleBar.new ViewAction(viewSliding), new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); } viewSliding.setVisibility(View.VISIBLE); if (viewSegment != null) { viewSegment.setVisibility(View.GONE); } } else { if (center.indexOfChild(viewSegment) == -1) { titleBar.addCenterAction(titleBar.new ViewAction(viewSegment), new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); } viewSegment.setVisibility(View.VISIBLE); if (viewSliding != null) { viewSliding.setVisibility(View.GONE); } } setTab(); } @Override public int getContentLayout() { return R.layout.fast_layout_title_view_pager; } /** * @param savedInstanceState */ @Override public void initView(Bundle savedInstanceState) { // setTab(); } @Override public void loadData() { super.loadData(); // setTab(); } // @Override // public void onConfigurationChanged(Configuration newConfig) { // super.onConfigurationChanged(newConfig); // if (newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { // LoggerManager.d(TAG, "竖屏"); // } else { // LoggerManager.d(TAG, "横屏"); // } // setTab(); // } private void setTab() { isSliding = (boolean) SPUtil.get(mContext, SPConstant.SP_KEY_ACTIVITY_TAB_SLIDING, isSliding); vpContent.removeAllViews(); listFragment.clear(); listFragment.add(MovieBaseFragment.newInstance(ApiConstant.API_MOVIE_IN_THEATERS)); listFragment.add(MovieBaseFragment.newInstance(ApiConstant.API_MOVIE_COMING_SOON)); listFragment.add(MovieBaseFragment.newInstance(ApiConstant.API_MOVIE_TOP)); if (isSliding) { TabLayoutManager.getInstance().setSlidingTabData(this, mSlidingTab, vpContent, getTitles(R.array.arrays_tab_activity), listFragment); } else { TabLayoutManager.getInstance().setSegmentTabData(this, mSegmentTab, vpContent, getResources().getStringArray(R.array.arrays_tab_activity), listFragment); } //SlidingTabLayout--需这样切换一下不然选中变粗没有效果不知是SlidingTabLayout BUG还是设置问题 // mSlidingTab.setCurrentTab(1); mSlidingTab.setCurrentTab(0); } private List<String> getTitles(int array) { return Arrays.asList(getResources().getStringArray(array)); } @Override protected void onVisibleChanged(boolean isVisibleToUser) { super.onVisibleChanged(isVisibleToUser); if (isVisibleToUser) { StatusBarUtil.setStatusBarLightMode(mContext); } } // @Subscriber(mode = ThreadMode.MAIN, tag = EventConstant.EVENT_KEY_REFRESH_ACTIVITY_TAB) // public void refreshActivityTab(boolean isSliding) { // mIsFirstShow = true; // setTitleBar(mTitleBar); // setTab(); // } }