2014-12-08 4 views
2

У меня есть основное действие, которое содержит макет кадра и 4 кнопки вкладок, и всего 4 фрагмента, каждый фрагмент относится к кнопке вкладки, в зависимости от того, какая кнопка кнопки нажата, соответствующая фрагмент будет заменен на макет кадра, чтобы заменить старый. Теперь в каждом фрагменте есть веб-просмотр, который загружает другой URL-адрес при создании фрагмента. Мой вопрос заключается в том, как предотвратить перезагрузку webview каждый раз при замене фрагментов? Ниже код, как я поменять свой фрагмент:Android предотвращает перезагрузку webview во фрагменте

FragmentMainPage fragment = new FragmentMainPage(); 
android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
FragmentTransaction transaction = fm.beginTransaction(); 
transaction.replace(R.id.frameLayout, fragment); 
transaction.commit(); 
currentPage = VT_Constants.HOME_PAGE; 

ответ

1

Calling заменить разрушительно: он срывает иерархию вида фрагмента, поэтому, когда вы добавляете его позже, взгляды должны быть перестроены, объясняющее поведение, которое вы смотри.

Попробуйте показать и спрячьте вместо этого. Они поддерживают представления фрагмента, поэтому их можно повторно привязать к вашей активности, когда пользователь нажимает на вкладку этого фрагмента. Нечто подобное (хотя я не знаю, как вы хотите, чтобы получить ссылку на текущий фрагмент):

FragmentMainPage fragment = new FragmentMainPage(); 
android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
Fragment oldFragment = fm.findFragmentByTag(...); // somehow get the current fragment showing 
FragmentTransaction transaction = fm.beginTransaction(); 
transaction.hide(oldFragment); 
transaction.show(fragment); 
transaction.commit(); 
+0

Почему-то я не могу найти старый фрагмент по его тегу ... поэтому я использовал другую альтернативу, приняв viewPager. – dulan

0

Вы можете установить лимит страниц.

viewPager.setOffscreenPageLimit(4);

Webviews не будет перезагружать больше.

Смежные вопросы