一、创建一个布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentTop="true" android:layout_above="@+id/titleTextView"> </WebView> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@id/titleTextView" android:layout_margin="5dp" android:layout_above="@+id/progressBar"/> <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:visibility="invisible" style="?android:attr/progressBarStyleHorizontal" android:id="@id/progressBar"/> </RelativeLayout>二、创建fragment
public class PhotoPageFragment extends VisibleFragment { private String mUrl; private WebView mWebView; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); mUrl=getActivity().getIntent().getData().toString(); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v=inflater.inflate(R.layout.fragment_photo_page,container,false); final ProgressBar progressBar= (ProgressBar) v.findViewById(R.id.progressBar); progressBar.setMax(100); final TextView titleTextView= (TextView) v.findViewById(R.id.titleTextView); mWebView= (WebView) v.findViewById(R.id.webView); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } }); mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress==100) { progressBar.setVisibility(View.INVISIBLE); }else { progressBar.setVisibility(View.VISIBLE); progressBar.setProgress(newProgress); } } @Override public void onReceivedTitle(WebView view, String title) { titleTextView.setText(title); } }); mWebView.loadUrl(mUrl); return v; } }三、创建activity来托管fragment
public class PhotoPageActivity extends SingleFragmentActivity { @Override protected Fragment createFragment() { return new PhotoPageFragment(); } }四、启动activity
GalleryItem item=mItems.get(position); Uri photoPageUri=Uri.parse(item.getPhotoPageUrl()); Intent i=new Intent(getActivity(),PhotoPageActivity.class); i.setData(photoPageUri); startActivity(i);五、让activity自己处理WebView的设备旋转问题
<activity android:name=".PhotoPageActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>