BuWanVideo/AndroidManifest.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/ui/main/DYNewsFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/ui/main/DYVideoFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/ui/main/DrawVideoFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/ui/main/NovelFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
library-common/src/com/lcjian/library/util/FragmentSwitchHelperV2.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
BuWanVideo/AndroidManifest.xml
@@ -316,7 +316,7 @@ android:value="570f28a578d6e12cba6f7f200b8d1c83"></meta-data> <meta-data android:name="UMENG_CHANNEL" android:value="xiaomi"></meta-data> android:value="huawei"></meta-data> <provider BuWanVideo/src/com/weikou/beibeivideo/ui/main/DYNewsFragment.java
@@ -140,7 +140,7 @@ Fragment fragment = mIDPWidget.getFragment(); if (fragment != null) { fragmentManager.beginTransaction().replace(R.id.fl_content, fragment).commitAllowingStateLoss(); getChildFragmentManager().beginTransaction().replace(R.id.fl_content, fragment).commitAllowingStateLoss(); } } BuWanVideo/src/com/weikou/beibeivideo/ui/main/DYVideoFragment.java
@@ -33,11 +33,18 @@ private static final String TAG = "DYVideoFragment"; private IDPWidget mIDPWidget; private MySwipeRefreshLayout swipeRefreshLayout; private FragmentManager fragmentManager; public DYVideoFragment() { super(); setName(DYNewsFragment.class.getName()); } public DYVideoFragment(FragmentManager fragmentManager) { super(); setName(DYNewsFragment.class.getName()); this.fragmentManager=fragmentManager; } @Override @@ -144,7 +151,11 @@ Fragment fragment = mIDPWidget.getFragment(); if (fragment != null) { getChildFragmentManager().beginTransaction().add(R.id.fl_content, fragment).commitAllowingStateLoss(); if(fragmentManager!=null) { fragmentManager.beginTransaction().add(R.id.fl_content, fragment).commitAllowingStateLoss(); }else{ getChildFragmentManager().beginTransaction().add(R.id.fl_content, fragment).commitAllowingStateLoss(); } } } BuWanVideo/src/com/weikou/beibeivideo/ui/main/DrawVideoFragment.java
@@ -49,6 +49,7 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import androidx.viewpager.widget.ViewPager; @@ -61,6 +62,10 @@ private FragmentManager fragmentManager; private MagicIndicator magic_indicator; private ViewPager vp_draw_videos; private DYVideoFragment mDYVideoFragment; private KSVideoFragment mKSVideoFragment; private DrawVideoTypesAdapter mDrawVideoTypesAdapter; public DrawVideoFragment() { super(); @@ -96,6 +101,26 @@ Log.i(TAG, "onCreate"); } @Override public void onHiddenChanged(boolean hidden) { Log.i(TAG, "onHiddenChanged:" + hidden); super.onHiddenChanged(hidden); if (mDrawVideoTypesAdapter != null) { int position = vp_draw_videos.getCurrentItem(); Fragment fragment = mDrawVideoTypesAdapter.getItem(position); if (fragment instanceof DYVideoFragment) { if (mDYVideoFragment != null) { mDYVideoFragment.onHiddenChanged(hidden); } } else if (fragment instanceof KSVideoFragment) { if (mKSVideoFragment != null) { mKSVideoFragment.onHiddenChanged(hidden); } } } } private void initView(View view) { magic_indicator = view.findViewById(R.id.magic_indicator); vp_draw_videos = view.findViewById(R.id.vp_draw_videos); @@ -109,7 +134,8 @@ } public void init() { vp_draw_videos.setAdapter(new DrawVideoTypesAdapter(getChildFragmentManager())); mDrawVideoTypesAdapter = new DrawVideoTypesAdapter(getChildFragmentManager()); vp_draw_videos.setAdapter(mDrawVideoTypesAdapter); CommonNavigator commonNavigator = new CommonNavigator(getActivity()); commonNavigator.setAdapter(navigatorAdapter); commonNavigator.setAdjustMode(true); @@ -144,7 +170,7 @@ }); colorTransitionPagerTitleView.setTextSize(18); colorTransitionPagerTitleView.getPaint().setFakeBoldText(true); colorTransitionPagerTitleView.setShadowLayer(3.0f,0,2,Color.parseColor("#80000000")); colorTransitionPagerTitleView.setShadowLayer(3.0f, 0, 2, Color.parseColor("#80000000")); return colorTransitionPagerTitleView; @@ -164,11 +190,11 @@ class DrawVideoTypesAdapter extends FragmentStatePagerAdapter { private FragmentManager fm; public DrawVideoTypesAdapter(@NonNull FragmentManager fm) { super(fm); this.fm = fm; mDYVideoFragment = new DYVideoFragment(); mKSVideoFragment = new KSVideoFragment(); } @Override @@ -182,12 +208,12 @@ Log.i(TAG, "getItem:" + position); if (getTypeCount() > 1) { if (position == 0) { return new DYVideoFragment(); return mDYVideoFragment; } else { return new KSVideoFragment(); return mKSVideoFragment; } } else { return new KSVideoFragment(); return mKSVideoFragment; } } BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java
@@ -27,6 +27,7 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.lcjian.library.util.FragmentSwitchHelper; import com.lcjian.library.util.FragmentSwitchHelperV2; import com.lcjian.library.util.ManifestDataUtil; import com.lcjian.library.util.common.StringUtils; import com.mozillaonline.providers.downloads.DownloadService; @@ -106,7 +107,7 @@ private RadioGroup rg_nav; private FragmentSwitchHelper mFragmentSwitchHelper; private FragmentSwitchHelperV2 mFragmentSwitchHelper; private AQuery mAQuery; @@ -198,7 +199,7 @@ initialer.run(); mFragmentSwitchHelper = FragmentSwitchHelper.create( mFragmentSwitchHelper = FragmentSwitchHelperV2.create( R.id.fl_main_fragment_container, getSupportFragmentManager(), getFragments() ); rg_nav = findViewById(R.id.rg_nav); BuWanVideo/src/com/weikou/beibeivideo/ui/main/NovelFragment.java
@@ -66,7 +66,7 @@ @Override public void onCreateView(View contentView, Bundle savedInstanceState) { fragmentManager.beginTransaction().replace(R.id.fl_container, NovelSDK.INSTANCE.getNovelFragment(), "novel").commitAllowingStateLoss(); getChildFragmentManager().beginTransaction().replace(R.id.fl_container, NovelSDK.INSTANCE.getNovelFragment(), "novel").commitAllowingStateLoss(); } library-common/src/com/lcjian/library/util/FragmentSwitchHelperV2.java
New file @@ -0,0 +1,81 @@ package com.lcjian.library.util; import android.util.Log; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; public class FragmentSwitchHelperV2 { private static final String TAG = "FragmentSwitchHelperV2"; public FragmentManager mFragmentManager; private Fragment[] mFragments; private Fragment mCurrentFragment; private int mContainerId; public Fragment getFragmentByName(String name) { if (mFragments == null || mFragments.length == 0) return null; for (Fragment m : mFragments) if (name.contains(m.getClass().getName())) { return m; } return null; } public static FragmentSwitchHelperV2 create(int containerId, FragmentManager fragmentManager, Fragment... fragments) { return new FragmentSwitchHelperV2(containerId, fragmentManager, fragments); } private FragmentSwitchHelperV2(int containerId, FragmentManager fragmentManager, Fragment... fragments) { this.mContainerId = containerId; this.mFragments = fragments; this.mFragmentManager = fragmentManager; } public void changeFragment(Class<? extends Fragment> replaceFragmentClass) { if (!mFragmentManager.isDestroyed()) { Fragment replaceFragment = mFragmentManager .findFragmentByTag(replaceFragmentClass.getName()); if (mCurrentFragment == replaceFragment && mCurrentFragment != null) { Log.d(TAG, "changeFragment noChange "); return; } FragmentTransaction fragmentTransaction = mFragmentManager .beginTransaction(); if (mCurrentFragment != null) { fragmentTransaction.hide(mCurrentFragment); Log.d(TAG, "changeFragment detach " + mCurrentFragment.getClass().getName()); } if (replaceFragment == null) { for (Fragment item : mFragments) { if (item.getClass().getName() .equals(replaceFragmentClass.getName())) { replaceFragment = item; break; } } fragmentTransaction.add(mContainerId, replaceFragment, replaceFragmentClass.getName()); Log.d(TAG, "changeFragment add " + replaceFragmentClass.getName()); } else { fragmentTransaction.show(replaceFragment); Log.d(TAG, "changeFragment attach " + replaceFragmentClass.getName()); } fragmentTransaction.commitAllowingStateLoss(); mCurrentFragment = replaceFragment; } } }