本社群由Nantou.py使用者社群以及國立虎尾科技大學電機資訊學院負責維護,它是一群熱愛智慧生活科技以及Python的專業教師所組成,大家一同快樂地研究有關數位生活中人工智慧、大數據、物聯網、雲端服務、APPS、福祉科技、感知網路服務、車載網路服務、及網際網路等資通訊技術,並運用這些資通訊以及Python技術來提升我們的日常生活品質,建立更好的生活環境。
2013年2月8日 星期五
Fragment子類別之WebViewFragment
在Fragment子類別中包括了 ListFragment 、DialogFragment、PreferenceFragment 及 WebViewFragment,前幾篇已經討論過ListFragment 、DialogFragment及PreferenceFragment 接著繼續探討WebViewFragment應用。
WebViewFragment可以把網頁顯示在Fragment中的功能,它跟WebView(網頁視圖)功能相同,主要是用來當作瀏覽器顯示網頁畫面;例如點選類似新聞或RSS列表後進入新聞網頁畫面功能。
步驟:
1. 用Eclipse建立一個Android 3.x項目以上專案並命名為WebViewFragmentExample
2. main.xml內容修改如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<FrameLayout
android:id="@+id/ShowWebFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
3.在src/ package目錄下增加 Fragment1.java,內容如下:
package edu.nkut.webviewfragmentexample;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebViewFragment;
/**
* WebViewFragment
*/
public class Fragment1 extends WebViewFragment {
static Fragment1 newInstance(String title) {
Fragment1 fragment = new Fragment1();
Bundle args = new Bundle();
args.putString("title", title);
fragment.setArguments(args);
return fragment;
}
@Override
public void onActivityCreated(final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
WebView webView = getWebView();
WebSettings setting = webView.getSettings();
setting.setJavaScriptEnabled(true);
setting.setPluginsEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://www.google.com.tw/");
}
}
4. MainActivity內容如下:
package edu.nkut.webviewfragmentexample;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Window;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 取消標題
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
// Fragment初始化
Fragment1 wf = new Fragment1();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.ShowWebFragment, wf);
ft.commit();
}
}
5. AndroidManifest.xml別忘記加入Internet權限。
<uses-permission android:name="android.permission.INTERNET"/>
執行結果:
上述是一個簡單的WebViewFragment,如果配合前面文章所述的ListFragment可以延伸如下圖畫面:
按照目前Fragment官網上的四個子類別大致上到本部落格已經全部整理出來,其他如有相關資訊後續再找時間慢慢補充。
參考:
1.WebView
http://developer.android.com/reference/android/webkit/WebView.html
2.WebViewFragment
http://developer.android.com/reference/android/webkit/WebViewFragment.html
3.Fragment官網
http://developer.android.com/reference/android/app/Fragment.html
==============延伸閱讀=====================
1.第一支Android Fragment程式--HelloFragment
http://cheng-min-i-taiwan.blogspot.tw/2012/04/android-fragment-hellofragment.html
2.Android Fragments 的生命週期
http://cheng-min-i-taiwan.blogspot.tw/2012/12/android-fragments.html
3.Fragment間的資料傳遞
http://cheng-min-i-taiwan.blogspot.tw/2013/01/fragment.html
4.Fragment與Activity間的資料傳遞
http://cheng-min-i-taiwan.blogspot.tw/2013/02/fragmentactivity.html
5.Fragment子類別之ListFragment
http://cheng-min-i-taiwan.blogspot.tw/2013/02/fragmentlistfragment.html
6.Fragment子類別之DialogFragment
http://cheng-min-i-taiwan.blogspot.tw/2013/02/fragmentdialogfragment.html
7.Fragment子類別之PreferenceFragment
http://www.cheng-min-i-taiwan.blogspot.tw/2013/02/fragmentpreferencefragment.html
8.Fragment子類別之WebViewFragment
http://cheng-min-i-taiwan.blogspot.tw/2013/02/fragmentwebviewfragment.html
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言