![](/img/trans.png)
[英]How do I retain the state of my ViewPager in my TabLayout when I'm replacing a Fragment on top of it?
[英]How do I save the state of my tablayout item and associated viewpager content position after reloading the whole view?
我有一個與viewpager關聯的tablayout。 每次我拉動刷新,目前我嘗試重新加載整個頁面(調用完成並再次啟動活動)。我的標簽布局中有4個項目(動態),我想這樣,每次刷新時,我可以在刷新之前保存所選項目的狀態,然后在重新加載整個屏幕后顯示它。
我在線推薦了幾件但沒有運氣的東西。
這是我可能使用的代碼,但不知道如何去做:
void selectPage(int pageIndex)
{
mViewPager.setCurrentItem(pageIndex);
mTabLayout.setupWithViewPager(mViewPager);
}
也,
@BindView(R.id.lists_view_pager)
ViewPager mViewPager;
@BindView(R.id.lists_refresh)
SwipeRefreshLayout mRefresh;
@BindView(R.id.tab_layout)
TabLayout mTabLayout;
在創建我打電話:
mRefresh.setOnRefreshListener(this::refreshassistant);
refreshassistant如下:
public void refreshassistant(){
finish();
startActivity(getIntent());
mPagerAdapter.notifyDataSetChanged();
overridePendingTransition(0, 0);
mPresenter.onRefresh();
}
我希望如果我選擇選項卡2,它顯示選項卡2的內容,然后當我刷新/重新加載整個頁面時,我能夠返回選項卡2及其內容。 知道如何去做嗎?
提前致謝!
您可以使用以下兩種方法來存儲和檢索頁面中的值:
public static void setDefaults(String key, String value, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value);
editor.commit();
}
public static String getDefaults(String key, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, null); //if no value found returns null
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.