這篇介紹如呵自訂DialogFragment

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

也可以用fragment的特性來產生

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

來介紹

 

1. 首先自訂ㄧ個layout

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

01.png

 

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();
}
});
}

02.png

 

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;
}

03.png

 

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

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

04.png

 

5. 結果如下圖

05.png

 

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

沒有加Windows.FEATURE_NO_TITLE的參數

06.png

 

7. 則Dialog就會秀上方的Bar

07.png  

arrow
arrow

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