Sas*_*ata 6 java android android-fragments
最近androidx.fragment.app.FragmentManager不推荐使用,并且没有适当的解决方案。
尝试实施支持V4,但无法使用AndroidX。它显示未找到库。
PagerAdapter:
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
//...
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。
Com*_*are 18
最近不推荐使用androidx.fragment.app.FragmentManager
目前不建议使用。例如,在文档中未将其标记为已弃用。
不推荐使用“ FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager)”
不建议使用单参数FragmentStatePagerAdapter构造函数。但是,如果阅读该构造函数的文档,则会发现:
不推荐使用此构造方法。将FragmentStatePagerAdapter(FragmentManager,int)与BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT一起使用
因此,替换FragmentStatePagerAdapter(fm)为FragmentStatePagerAdapter(fm, FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT),以保留原始一参数构造函数的功能。
Pra*_*ani 14
您可以更改默认构造函数,如下所示:
public SectionsPagerAdapter(@NonNull FragmentManager fm, int behavior, Context mContext) {
super(fm, behavior);
this.mContext = mContext;
}
Run Code Online (Sandbox Code Playgroud)
定义的完整适配器类:
/**
* A [FragmentPagerAdapter] that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
@StringRes
private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2};
private final Context mContext;
public SectionsPagerAdapter(@NonNull FragmentManager fm, int behavior, Context mContext) {
super(fm, behavior);
this.mContext = mContext;
}
@NotNull
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a ProductSearchFragment (defined as a static inner class below).
if(position == 0) {
return new ProductSearchFragment();
} else if(position == 1) {
return new GenericSearchFragment();
}
return new ProductSearchFragment();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mContext.getResources().getString(TAB_TITLES[position]);
}
@Override
public int getCount() {
// Show 2 total pages.
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样调用:
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT, this);
Run Code Online (Sandbox Code Playgroud)
谢谢你。
| 归档时间: |
|
| 查看次数: |
2961 次 |
| 最近记录: |