Fragment
を含むベーシックのコードを次に示しますWebView
。
WebFragment.java
public class WebFragment extends Fragment {
String TAG = "WebFragment";
private WebView webView;
private String currentUrl = "http://www.google.com";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.webview_layout, null);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
webView = (WebView) getView().findViewById(R.id.helloWebview);
initWebView();
webView.loadUrl(currentUrl);
}
@SuppressLint("SetJavaScriptEnabled")
private void initWebView() {
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(), "HTMLOUT");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.e(TAG, "Loding...");
super.onPageStarted(view, url, favicon);
}
});
}
class JavaScriptInterface {
public void showHTML(String html) {
}
}
}
さらに2つの基本的なフラグメントもあります(これにはありませんWebView
)。次に、 を使用して、これら 3 つすべてFragments
をViewPager
( WebFragment
、Fragment1
およびFragment2
それぞれ)に入れますFragmentAdapter
。そして、私は追加android:configChanges="orientation|screenSize"
しましたAndroidManifest.xml
(そのWebView
ため、構成の変更時にrealodしません)。
今私の問題は、アプリの実行中に最初のページ(WebFragmet)ViewPager
を2番目のページ(Fragment1
)に変更し、再び最初のページに戻ったことです。なのでそのままで問題WebFragment
ありません。
ここで再び--> -->のViewPager
ように変更し、上記のアクションの方向を逆にして最初のページに戻りました。しかし、その時、インがリロードしているのを見ました。WebFragment
Fragment1
Fragment2
WebView
WebFragment
もう 1 つの問題は、読み込みが開始されるたびに、次のWebView
ような 2 つのログ エントリが表示されることです。
WebFragment Loading...
WebFragment Loading...
だから私の質問は: 1)が保持されているときにリロード
を防ぐにはどうすればよいですか?
2) なぜここで2 回ロードするのですか?WebView
WebFragment
BackStack
WebView
この質問を見て、助けてください(FragmentPagerAdapterでWebViewのリロードを防ぎますか?)。