Android: onCreateView () работает на расстоянии одной вкладки
Я создаю приложение с вкладками и сталкиваюсь с проблемой. onCreateView() запускается, когда я нажимаю вкладку рядом с тем местом, где я нахожусь. Я имею в виду, что если у меня есть три вкладки (setup, maps и motor), то представление onCreateView() для карт и настроек будет запущено, если я нажму на вкладку motor. Кроме того, onDestroyView () для motor не будет работать, пока я не получу две вкладки, нажав на setup. Есть ли так или иначе вокруг этого, и заставить их работать, когда определенная вкладка нажата или удалена?
1 ответ:
Причина, по которой это происходит, заключается в том, что вы используете
ViewPager
для отображения содержимого с вкладками.
ViewPager
предназначен для предварительной загрузки содержимого (как минимум одного из) вкладок/фрагментов по обе стороны от текущей вкладки/фрагмента. Это происходит потому, что Android должен предварительно загрузить этот контент, чтобы отобразить его в ответ, когда вы меняете / проводите между вкладками / фрагментами в вашемViewPager
.Это не может быть отключено, так как минимальное количество соседних вкладок можно установить равным значение pre-loaded равно 1 (это означает, что содержимое вкладок слева и справа всегда будет предварительно загружено при использовании
Я предлагаю выяснить, почему это является проблемой для вашего приложения (как в большинстве случаев это не должно быть), а затем решить, подходит лиViewPager
).ViewPager
для вашего конкретного приложения.. поскольку поведение, которое вы описываете, ожидается дляViewPager
.