MJM*_*MJM 29 android android-support-library fragmentstatepageradapter
FragmentStatePagerAdapter已从API 27中弃用。的替代方案是FragmentStatePagerAdapter什么?
private class MainPagerAdapter extends FragmentStatePagerAdapter {
MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment result = new DummyFragment();
return result;
}
@Override
public int getCount() {
return 5;
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示FragmentStatePagerAdapter,getItem并super(fm);已弃用
小智 41
以下构造函数执行相同的操作
super(@NonNull FragmentManager fm)
super(@NonNull FragmentManager fm, BEHAVIOR_SET_USER_VISIBLE_HINT)
Run Code Online (Sandbox Code Playgroud)
传递BEHAVIOR_SET_USER_VISIBLE_HINT得到了弃用。您应该BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT改为通过。
通过这些区别在于FragmentPagerAdapter:
/**
* Indicates that Fragment#setUserVisibleHint(boolean) will be
* called when the current fragment changes.
*/
@Deprecated
public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0;
/**
* Indicates that only the current fragment will be
* in the Lifecycle.State#RESUMED state. All other Fragments
* are capped at Lifecycle.State#STARTED.
*/
public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1;
Run Code Online (Sandbox Code Playgroud)
Den*_*nko 28
您可以延长
androidx.fragment.app.FragmentStatePagerAdapter;
Run Code Online (Sandbox Code Playgroud)
并打电话
super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
Run Code Online (Sandbox Code Playgroud)
在类的构造函数中
Alo*_*pta 23
这对我有用。
在科特林:
class TasksPagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT )
Run Code Online (Sandbox Code Playgroud)
小智 5
仅以 FragmentManager 作为参数的构造函数被复制并更改为
public FragmentStatePagerAdapter(@NonNull FragmentManager fm,
@Behavior int behavior)
Run Code Online (Sandbox Code Playgroud)
但是您可以通过使用下面的构造函数来实现相同的目的,您还应该通过构造函数注入 tabsNumber 以避免使用硬编码数字,并通过 getCount() 返回它。
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
this.numberOfTabs= NumOfTabs;
}
@Override
public int getCount() {
return numberOfTabs;
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请查看AndroidX的官方文档
此类在 API 级别 27.1.0 中已弃用。这是支持 v13 https://developer.android.com/reference/android/support/v13/app/FragmentStatePagerAdapter
使用支持 v4 中的 FragmentStatePagerAdapter https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter
| 归档时间: |
|
| 查看次数: |
16654 次 |
| 最近记录: |