Android 元件之DialogFragment建立小述
阿新 • • 發佈:2018-11-09
一、概述
本節主要簡單介紹下DialogFragment的使用,DialogFragment是Fragment的子類,跟其他Fragment一樣,DialogFragment例項也是由託管Activity的FragmentManager管理著的,DialogFragment可通過呼叫show(…)方法被FragmentManager放置到螢幕上,下面我們就來具體的看下
二、DialogFragment建立
其實DialogFragment的用法非常簡單,下面我們來簡單看個例子,這是我們定義的MyDialogFragment類
public class MyDialogFragment extends DialogFragment{
//在這裡我們就建立一個簡單的AlterDialog,重點不是AlterDialog
@Override public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setTitle("這是我們定義的AlterDialog")
.setPositiveButton(android. R.string.ok, null)
.create();
}
}
隨後在我們的MyActivity4中使用即可
public class MyActivity4 extends AppCompatActivity{
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_layout4);
addClickListener();
}
private void addClickListener() {
findViewById(R.id.tv_show_dialog).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//彈出對話方塊
addDialogFragment();
}
});
}
private void addDialogFragment() {
//雖然DialogFragment也是一個Fragment,但是在使用上還是有些差別
FragmentManager fm = getFragmentManager();
MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.show(fm, "俺乃String tag");
}
}
為什麼有AliterDialog了,我們還要多此一舉的使用DialogFragment呢,主要原因有兩方面,一方面是因為既然DialogFragment是Fragment,所以其也就具備了Fragment的優點,有自己的生命週期管理、易複用、能夠通過FragmentManager使用更多配置選項顯示對話方塊;另一方面,當裝置發生旋轉時,DialogFragment也不會像AlterDialog那樣在旋轉後消失。
三、總結
本節主要簡單的介紹了DialogFragment的使用,如果想要檢視更多Fragment的基礎知識,去我的部落格目錄裡檢視吧,因為關於每塊知識點的介紹,部落格單節寫的比較零散,不容易查詢。