SO, Maintain/Save restore scroll position 'da ünlü bir gönderiye gittim, ancak bana hiç yardımcı olmuyor.Oryantasyon: bir Parça İçinde ListView konumunu geri yükleme
Bir parçanın içinde bir ListView var, oryantasyonu değiştirirsem, saveInstance Bundle konumumu koruyacak olmasını isterim. Ben
private static final String LIST_STATE = "listState";
private Parcelable mListState = null;
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mListState = listView.onSaveInstanceState();
outState.putParcelable(LIST_STATE, mListState);
}
var ve aşağıdaki kodla
if(savedInstanceState!=null) {
mListState = savedInstanceState.getParcelable(LIST_STATE);
listView.onRestoreInstanceState(mListState);
OnCreateView veya onActivityCreated içinde hiç restore edilmez listenin yukarı pozisyonu koyarsanız fark etmez. Kolayca ayıklama Paketi pozisyon tanımak Demet içinde debug görebilir ,
AbsListView.SavedState {3d7562e0 selectedId = -9223372036854775808 firstId = 25 viewTop = -38 noktası = 5 yükseklik = 717 filtre = null checkState = null}
hatta tüm değerleri yerine Demet izole edilmiş bir şekilde bu pozisyonu elde etmek için çalışılmıştır, ama başarılı olamadı. fragmanı
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
İlginiz için çok teşekkürler, ancak setRetainInstance (true) olarak adlandırılırsam, döndürme değiştirirseniz ListView kaybolur – trocchietto