sách gpt4 ai đã đi

Giữ nguyên phiên bản phân đoạn đã tải trước đó trên tab thay đổi thay vì tạo phiên bản phân đoạn mới trong Android

In lại 作者:行者123 更新时间:2023-11-29 19:46:04 28 4
mua khóa gpt4 Nike

我有一个选项卡滑动布局,其中包括四个选项卡,每个选项卡都有自己的布局和 fragment ,在我的主要 Activity 布局中,viewpager 参与更改选项卡。特定 View (选项卡)在应用程序启动时加载,其他 View 将在选项卡更改时加载。我的问题是,当我导航到第三个或第四个选项卡(而不是第二个选项卡)时,将创建其相应 fragment 的新实例而不是加载先前创建的 fragment (仅在第二个选项卡中发生的预期行为)。当我导航到第二个选项卡(SecondPageFragment())并再次返回到第一个选项卡时,它工作正常并且不会创建新的 IndexFragment,而是加载以前创建的 fragment 所以在这种情况下一切都很好,但是当我转到第三个或第四个选项卡然后返回到第一个选项卡时,它会创建一个新的 IndexFragment 实例。

这可能是什么原因,为什么它只发生在第三个、第四个等选项卡上,而只有第二个选项卡按预期正常工作????

这是我切换选项卡及其相应 fragment 的代码

public class TabsPagerAdapter extends FragmentPagerAdapter {

public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}

@Ghi đè
public Fragment getItem(int index) {

switch (index) {
case 0:
return new ForthPageFragment();

case 1:
return new ThirdPageFragment();
case 2:
return new SecondPageFragment();
case 3:
return new IndexFragment();
default :
phá vỡ;
}

trả về giá trị null;
}

@Ghi đè
công khai int getCount() {
// get item count - equal to number of tabs
return 4;
}

}

这是我的主要 Activity 代码:

public class MainActivity extends FragmentActivity implements
ActionBar.TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "صفحه چهارم","صفحه سوم","صفحه دوم","صفحه اصلی" };
@Ghi đè
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initilization
viewPager = (ViewPager)findViewById(R.id.tabpager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Ghi đè
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}

@Ghi đè
public void onPageScrolled(int arg0, float arg1, int arg2) {
}

@Ghi đè
public void onPageScrollStateChanged(int arg0) {
}
});
viewPager.setCurrentItem(3);
}

@Ghi đè
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}

@Ghi đè
public void onTabSelected(Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
}
}

1 Câu trả lời

viewPager.setOffscreenPageLimit(3);

关于android - 选项卡更改时保留以前加载的 fragment 实例,而不是在 android 中创建新 fragment 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37656540/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com