這篇介紹如呵自訂DialogFragment

可以用[Android] 10-3 自定Dialogreturn Dialog的方法來做

也可以用fragment的特性來產生

[Android] 10-8 DialogFragment CallBack in fragment基礎

來介紹

 

1. 首先自訂ㄧ個layout

這邊新增ㄧ個只有TextView和Button的Layout

 

2. 接著在DialogFragment內

像Fragmentㄧ樣在onCreateView內inflater目標layout

onViewCreated做找ID

範例如下

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.dialog_test, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.findViewById(R.id.btn_click).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
}

 

3. 而onCreateDialog的部分改成return dialog

其中Windows.FEATURE_NO_TITLE的參數

代表要不要秀Title

範例如下

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
return dialog;
}

 

4. 而在呈現方面則和之前ㄧ樣

TestDialog dialog = new TestDialog();
dialog.setTargetFragment(this, 0);
dialog.show(getFragmentManager(), "dialog");

 

5. 結果如下圖

 

6. 如果onCreateDialog的部分改成return dialog

沒有加Windows.FEATURE_NO_TITLE的參數

 

7. 則Dialog就會秀上方的Bar

 

文章標籤
全站熱搜
創作者介紹
創作者 RX1226 的頭像
RX1226

給你魚竿

RX1226 發表在 痞客邦 留言(0) 人氣(1,555)