优化viewpager 主页的问题
This commit is contained in:
@@ -5,6 +5,7 @@ import android.util.Log;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.ttstd.dialer.R;
|
||||
@@ -37,7 +38,8 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
private ContactFragment mContactFragment;
|
||||
private HomeFragment mHomeFragment;
|
||||
|
||||
private int mCurrentIndex = 0;
|
||||
private int mDefaultIndex = 0;
|
||||
private int mCurrentIndex = -1;
|
||||
private int mFragmentSize = 0;
|
||||
|
||||
private int APK_PER_FRAGMENT = 9;
|
||||
@@ -81,12 +83,12 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
mSettingsFragment = new SettingsFragment();
|
||||
mFragments.add(mSettingsFragment);
|
||||
mFragmentSize += 1;
|
||||
mCurrentIndex += 1;
|
||||
mDefaultIndex += 1;
|
||||
}
|
||||
|
||||
boolean contactHome = mMMKV.decodeBool(CommonConfig.CONTACT_HOME_PAGE, false);
|
||||
if (!contactHome) {
|
||||
mCurrentIndex += 1;
|
||||
mDefaultIndex += 1;
|
||||
}
|
||||
if (mContactFragment == null) {
|
||||
mContactFragment = new ContactFragment();
|
||||
@@ -114,13 +116,36 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
|
||||
mViewDataBinding.viewPager.setAdapter(mApkPagerAdapter);
|
||||
mViewDataBinding.viewPager.setOffscreenPageLimit(10);
|
||||
mViewDataBinding.viewPager.setCurrentItem(mCurrentIndex);
|
||||
mViewDataBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
Log.e(TAG, "onPageScrolled: position = " + position);
|
||||
if (mCurrentIndex == -1 && position == 0) {
|
||||
mViewDataBinding.viewPager.setCurrentItem(mDefaultIndex);
|
||||
mCurrentIndex = mDefaultIndex;
|
||||
} else {
|
||||
mCurrentIndex = position;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
Log.e(TAG, "onPageSelected: position = " + position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
Log.e(TAG, "onPageScrollStateChanged: state = " + state);
|
||||
}
|
||||
});
|
||||
mViewDataBinding.magicIndicator.setNavigator(mScaleCircleNavigator);
|
||||
ViewPagerHelper.bind(mViewDataBinding.magicIndicator, mViewDataBinding.viewPager);
|
||||
mViewDataBinding.viewPager.setCurrentItem(mDefaultIndex);
|
||||
|
||||
Log.e(TAG, "initView: mCurrentIndex = " + mCurrentIndex);
|
||||
Log.e(TAG, "initView: mDefaultIndex = " + mDefaultIndex);
|
||||
Log.e(TAG, "initView: mFragmentSize = " + mFragmentSize);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -169,6 +194,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
mScaleCircleNavigator.notifyDataSetChanged();
|
||||
|
||||
mApkPagerAdapter.setFragments(mFragments);
|
||||
mViewDataBinding.viewPager.setCurrentItem(mCurrentIndex);
|
||||
}
|
||||
|
||||
public class BtnClick {
|
||||
|
||||
Reference in New Issue
Block a user