Я создал набор горизонтальных вкладок, и для каждого содержимого вкладки есть пейджер View, который, в свою очередь, позволяет просматривать содержимое представления.Android FragmentStatePagerAdapter - Отсутствует вид
В настоящее время я привязываю это к 3 видам в адаптере и возвращаю новый внутренний фрагмент, который представляет деталь, когда вызывается getItem().
Это работает нормально, пока я не перейду к другой вкладке, и когда я вернусь, средний вид отсутствует, это происходит на всех вкладках.
Когда я смотрю на отладку, я только когда-либо вижу вызов getItem для позиций 0 и 2, всегда есть представление, которое отсутствует, и поэтому вместо визуализированного представления у меня просто нет макета, если я прокручиваю, я получаю Другая точка зрения.
Если я не нажимаю на другую вкладку, но просто продолжаю прокручивать просмотры на вкладке, которая является значением по умолчанию, тогда я не теряю представление, похоже, только когда я нажал, чтобы перейти на другую вкладку, а затем обратно , Я никогда не видел запрос для просмотра в позиции 1, хотя, только когда-либо 0 или 2.
мой адаптер внутренний класс фрагмента, который представляет ViewPager и выглядит как:
public class HomeAddressDetailFragmentStatePageAdapter extends FragmentStatePagerAdapter {
public HomeAddressDetailFragmentStatePageAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public int getCount() {
return 3;
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
Log.d(LOG_TAG, "requesting tab view in position: " + position);
android.support.v4.app.Fragment fragment = null;
fragment = new HomeAddressDetailFragment();
return fragment;
}
}
The OnCreate для фрагмент:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = (View)inflater.inflate(R.layout.fragment_home_addresses, container, false);
HomeAddressDetailFragmentStatePageAdapter homeAddressDetailFragmentStatePageAdapter = new HomeAddressDetailFragmentStatePageAdapter(getFragmentManager());
homeAddressViewPager = (ViewPager)rootView.findViewById(R.id.home_addr_pager);
homeAddressViewPager.setAdapter(homeAddressDetailFragmentStatePageAdapter);
return rootView;
}
И XML для этого фрагмента:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_addr_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</android.support.v4.view.ViewPager>
</FrameLayout>
Хорошо хорошо мой следующий барьер будет раздвинуть вкладки с сетевым вызовом, чтобы захватить реальную nmber адресов, а затем зафиксировать его в этом, поэтому я должен всегда установить метод выше 1 меньше числа элементов в моем арифметике адресов? – berimbolo
Также если opsition 1 всегда есть, почему он не отображает фактический макет представления? – berimbolo
На самом деле было бы лучше, если бы я мог попросить пейджер представления не поддерживать какие-либо представления, которые, как я предполагаю, каждый раз, когда запрашивается представление, я могу просто захватить данные из массива для этой позиции позиции и затем визуализировать данные. это плохая идея? – berimbolo