ViewPager
の束を含むを構築しようとしていますWebViews
。動作させることはできますが、コンテンツを読み込んでいるのViewPager
はイニシャルだけです。WebView
他のビューにスワイプすると、空白になります。エラーメッセージなどはありません。コードにブレークポイントを設定するloadUrl
と、正しいURLでヒットしているため、何が起こっているのかわかりません。
アクティビティ
public class BrowserPager extends SherlockFragmentActivity {
private List <String> urls;
private static int NUMBER_OF_PAGES;
@Override
public void onCreate(final Bundle icicle)
{
setContentView(R.layout.browser_pager);
urls = GetUrls();
NUMBER_OF_PAGES = urls.getCount();
mViewPager = (ViewPager)findViewById(R.id.pager);
mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mMyFragmentPagerAdapter);
}
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
return Browser.newInstance(urls.get(index));
}
@Override
public int getCount() {
return NUMBER_OF_PAGES;
}
}
}
断片
public class Browser extends SherlockFragment {
private String mUrl;
private WebView mWebView;
public static Browser newInstance(String url) {
Browser b = new Browser();
Bundle bundle = new Bundle();
bundle.putString("url", url);
b.setArguments(bundle);
return b;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (getArguments() != null)
mUrl = getArguments().getString("url");
return inflater.inflate(R.layout.browser, container, false);
}
@Override
public void onResume()
{
super.onResume();
DisplaySite();
}
private void DisplaySite() {
mWebView = (WebView)getActivity().findViewById(R.id.webview);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.loadUrl(mUrl);
final ProgressBar progess = (ProgressBar)getActivity().findViewById(R.id.ProgressBar);
mWebView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
progess.setVisibility(View.VISIBLE);
progess.setProgress(0);
}
public void onPageFinished(WebView view, String url) {
progess.setVisibility(View.GONE);
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progess.setProgress(progress);
}
});
}
}