iT邦幫忙

DAY 6
0

菜逼八的 Android 開發 30天系列 第 6

【菜逼八學Android】可浮在Activity之上的DialogFragment(2)

哈囉大家早安,終於來到鐵人賽的第六天,
我們今天要繼續練習DialogFragment,
不過是一個很簡單的範例,一下子就能學會啦~

繼昨天練習的DialogFragment,
我們知道它就是一個可以浮動在Activity之上的框架(畫重點筆記)
昨天我們是利用它,回傳一個AlertDialog在上面,
那今天我想要自訂一個Layout在上面可不可以啊?
答案是,喔福扣兒史~~當然可以!

所以我們今天要做一個浮動的Layout在Activity上面,
就像這樣


好的,那就開始練習今天的範例囉

Step1. 建立MainActivity、activity_main.xml

這個MainActivity是一個程式的出入口,記得建立完之後,要在AndroidManifest.xml設定權限唷,這邊我就不再贅述啦

Step2. 建立一個浮動方塊的Layout

我們要在layout資料夾中,建立一個fragment_mydialog.xml的Layout,
它就是浮在Activity上的方塊,在裡面放一個TextView就OK了

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

Step3. 建立DialogFragment

我們要建立一個繼承DialogFragment的MyDialogFragment,來控制剛剛fragment_mydialog.xml的TextView內容,這邊要記得把

Layout中的標題取消掉(不然整個方塊會變得很好笑)

public class MyDialogFragment extends DialogFragment {
	static MyDialogFragment newInstance() {
		return new MyDialogFragment();
	}

	@Override
	public Dialog onCreateDialog(Bundle savedInstanceState) {
		setStyle(STYLE_NO_TITLE, 0); //把Layout中的標題設為不顯示
		return super.onCreateDialog(savedInstanceState);
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View v = inflater.inflate(R.layout.fragment_mydialog, container, false);
		View tv = v.findViewById(R.id.text);
		((TextView) tv).setText("這是一個MyDialogFragment的實例");
		return v;
	}
}

那今天的練習就到這邊,我們明天見~
希望大家都有清楚了解DialogFragment的用法囉!

以上內容皆參考官方文件:http://developer.android.com/reference/android/app/DialogFragment.html


上一篇
【菜逼八學Android】可浮在Activity之上的DialogFragment(1)
下一篇
【菜逼八學Android】偏好設定的PreferenceFragment(1)
系列文
菜逼八的 Android 開發 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言