使用ASL的25.0 BottomNavigationView
我遇到了一些麻煩,如保存選定項目(或其索引)和以編程方式選擇的項目。在屏幕旋轉過程中保存BottomNavigationView選擇的項目
7
A
回答
5
1
同意尼古拉!
我創建了自己gist太
到你需要添加到您Activity
旋轉後保存狀態:
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt("opened_fragment", bottomNavigation.getCurrentItem());
super.onSaveInstanceState(outState);
}
進入onCreate
方法,只是建立BottomNavigationView
後:
final defaultPosition = 0;
final int bottomNavigationPosition = savedInstanceState == null ? defaultPosition :
savedInstanceState.getInt("opened_fragment", defaultPosition);
bottomNavigation.setCurrentItem(bottomNavigationPosition);
這個要點的最大優點是:有幾種聽衆,它顯示你以前的選擇位置離子和聽衆即使在以編程方式設置位置時也會作出反應。一切都是用鏈接寫的,如果你需要的話可以使用。
+1
如果一個位置被認爲是視圖的興趣,那麼它必須保存在視圖實現中。因此,通常的做法是將它保存在視圖的適當的保存和恢復狀態方法中,而不是去「Activity」類。 –
2
我正在使用BottomNavigationView,這裏是應用程序在屏幕旋轉上正常工作的代碼。 首先,我創建一個變量來保存所選菜單
private int saveState;
通過取所選擇的菜單ID在變量
@Override
protected void onResume() {
super.onResume();
navigation.setSelectedItemId(saveState);
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
saveState = navigation.getSelectedItemId();
}
然後在onCreate方法檢索的值保存id的值的id ID(如果可用)
if(savedInstanceState!=null){
navigation.setSelectedItemId(saveState);
}else{
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content, MapFragment.newInstance());
transaction.commit();
}
0
我有同樣的問題,我所做的是從2更新5.0.1到25.3.1它開始正常工作,無需附加代碼。您可以檢查最新版本Support Library Revision website。
我希望它有幫助。
相關問題
- 1. 在屏幕旋轉過程中保存對象的狀態
- 2. 在屏幕上保存MediaPlayer旋轉
- 3. 在Android應用程序的屏幕旋轉保存變量
- 4. 在屏幕旋轉中保存ViewPager中的片段狀態
- 5. 在旋轉屏幕時將textview保存在一個片段中
- 6. 保持對象在屏幕上旋轉?
- 7. 旋轉屏幕
- 8. 屏幕旋轉
- 9. 屏幕旋轉
- 10. 屏幕旋轉
- 11. 屏幕旋轉
- 12. android中的屏幕旋轉
- 13. iOS中的屏幕旋轉
- 14. 在屏幕旋轉上保存動態創建的tablelayout
- 15. 的Android保存在屏幕上旋轉前景派遣
- 16. 通過選項菜單項保存屏幕截圖文件android
- 17. 項目在android中選擇的顏色BottomNavigationView
- 18. 旋轉屏幕TableLayout
- 19. iPhone - 屏幕旋轉?
- 20. iOS屏幕旋轉
- 21. 當屏幕旋轉
- 22. 屏幕旋轉保留多個fragmens
- 23. 的Android旋轉器旋轉屏幕
- 24. 在屏幕旋轉上保存WebView狀態
- 25. Android在屏幕旋轉時保存TextView背景顏色
- 26. 如何在旋轉屏幕時保存圖像onSaveInstanceState?
- 27. 如何在Android屏幕上保存自定義ArrayList旋轉?
- 28. UICollectionView在旋轉過程中不適應iPad屏幕
- 29. nullPointerException在屏幕旋轉後
- 30. android.view.InflateException在屏幕上旋轉
爲什麼不將期望的項目設置爲已檢查?就像他們在您發佈的最後一個鏈接中所建議的那樣(https://code.google.com/p/android/issues/detail?id = 225900&q = BottomNavigationView&colspec = ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened) bottomNavigationView.getMenu()。findItem(selectedItem).setChecked(true); –