Skip to content

Commit

Permalink
7.0.3
Browse files Browse the repository at this point in the history
- FragmentChangeUtil新增加rebuildDefaultPagerAdapter()方法用于ViewPager无法正常删除页面时重建Adapter
  • Loading branch information
kongzue committed Sep 11, 2024
1 parent 02b8342 commit b810009
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ android {
applicationId "com.kongzue.baseframeworkdemo"
minSdkVersion 15
targetSdkVersion 30
versionCode 138
versionName "7.0.2"
versionCode 139
versionName "7.0.3"
}
buildTypes {
release {
Expand Down
4 changes: 2 additions & 2 deletions baseframework/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ android {
defaultConfig {
minSdkVersion 15
targetSdkVersion 34
versionCode 138
versionName "7.0.2"
versionCode 139
versionName "7.0.3"
}

buildTypes {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import android.view.View;
import android.widget.FrameLayout;

import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
Expand Down Expand Up @@ -308,6 +307,10 @@ public FragmentChangeUtil remove(BaseFragment fragment) {
transaction.commit();
}
if (containerView instanceof ViewPager) {
int focusIndex = fragmentList.indexOf(focusFragment);
if (!fragmentList.contains(focusFragment)) {
focusFragment = focusIndex >= 0 && focusIndex < fragmentList.size() ? fragmentList.get(focusIndex) : fragmentList.get(0);
}
fragmentList.remove(fragment);
fragmentPagerAdapter.notifyDataSetChanged();
if (focusFragment == fragment) {
Expand Down Expand Up @@ -339,7 +342,11 @@ public int getFocusFragmentIndex() {
log("错误:请先执行build(...)方法初始化FragmentChangeUtil");
return -1;
}
return fragmentList.indexOf(focusFragment);
int focusIndex = fragmentList.indexOf(focusFragment);
if (!fragmentList.contains(focusFragment)) {
focusFragment = focusIndex >= 0 && focusIndex < fragmentList.size() ? fragmentList.get(focusIndex) : fragmentList.get(0);
}
return focusIndex;
}

//简易Log
Expand Down Expand Up @@ -422,8 +429,18 @@ public List<BaseFragment> getFragmentList() {
return fragmentList;
}

public FragmentChangeUtil setFragmentPagerAdapter(FragmentPagerAdapter fragmentPagerAdapter) {
public FragmentChangeUtil setFragmentPagerAdapter(PagerAdapter fragmentPagerAdapter) {
this.fragmentPagerAdapter = fragmentPagerAdapter;
return this;
}

public FragmentChangeUtil rebuildDefaultPagerAdapter() {
if (containerView instanceof ViewPager) {
ViewPager viewPager = (ViewPager) containerView;
fragmentPagerAdapter = new DefaultViewPagerAdapter(me.getSupportFragmentManager(), fragmentList);
viewPager.setAdapter(fragmentPagerAdapter);
viewPager.setCurrentItem(getFocusFragmentIndex());
}
return this;
}
}

0 comments on commit b810009

Please sign in to comment.