手机弹窗

更新时间:2023-03-12 20:02:39 阅读: 评论:0

玫瑰花怎么包装-自心

手机弹窗
2023年3月12日发(作者:windows截图快捷键)

使⽤DialogFragment实现弹窗1-基本⽤法

定义

DiaogFragment是⼀个⽤来显⽰对话框窗体的Fragment,浮在他所在的Activity之上。它包含⼀个Dialog对象,根

据Fragment的状态来控制Dialog的显⽰,并且应使⽤他的API来管理Dialog,⽽不是直接调⽤Dialog。

例:在⼿机配置变化导致Activity需要重新创建时,例如旋转屏幕,基于DialogFragment的对话框将会由

FragmentManager⾃动重建,然⽽基于Dialog实现的对话框却没有这样的能⼒

使⽤⽅法

1、继承DiaogFragment

2、实现onCreateView或者onCreateDialog⽅法来指定布局

3、就像普通Fragment⼀样在宿主调⽤显⽰

⽣命周期

DialogFragment做了很多事情来尽量通过Fragment的⽣命周期来控制它⾃⾝,⽽不是采⽤Dialog的⽣命周期。注意,通常对话框是⾃治实

体--他们有⾃⼰的window,接受输⼊事件,甚⾄⾃⼰决定什么时候消失(⼀般是后退事件)。

DialogFragment需要尽量让Fragment和Dialog保持⼀致的状态,因此他会监测Dialog的dismiss事件,当事件触发的时候,他会移除掉

它⾃⼰的状态。这意味着,你需要使⽤show(FragmentManager,String)和show(FragmentTransaction,String)来给你的UI添加

DialogFragment,因为这两个⽅法会在DialogFrament移除⾃⼰和Dialog的dismiss事件之间建⽴关联。

⽰例1-⼀般Dialog

1、DialogFragment定义

2、调⽤

publicstaticclassMyDialogFragmentextendsDialogFragment{

intmNum;

/**

*CreateanewinstanceofMyDialogFragment,providing"num"

*asanargument.

*/

staticMyDialogFragmentnewInstance(intnum){

MyDialogFragmentf=newMyDialogFragment();

//Supplynuminputasanargument.

Bundleargs=newBundle();

("num",num);

uments(args);

returnf;

}

@Override

publicvoidonCreate(BundlesavedInstanceState){

te(savedInstanceState);

mNum=getArguments().getInt("num");

//Pickastylebadonthenum.

intstyle=_NORMAL,theme=0;

switch((mNum-1)%6){

ca1:style=_NO_TITLE;break;

ca2:style=_NO_FRAME;break;

ca3:style=_NO_INPUT;break;

ca4:style=_NORMAL;break;

ca5:style=_NORMAL;break;

ca6:style=_NO_TITLE;break;

ca7:style=_NO_FRAME;break;

ca8:style=_NORMAL;break;

}

switch((mNum-1)%6){

ca4:theme=_Holo;break;

ca5:theme=_Holo_Light_Dialog;break;

ca6:theme=_Holo_Light;break;

ca7:theme=_Holo_Light_Panel;break;

ca8:theme=_Holo_Light;break;

}

tStyle(style,theme);

}

@Override

publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,

BundlesavedInstanceState){

Viewv=e(nt_dialog,container,fal);

Viewtv=ewById();

((TextView)tv).tText("Dialog#"+mNum+":usingstyle"

+getNameForNum(mNum));

//Watchforbuttonclicks.

Buttonbutton=(Button)ewById();

lickListener(newOnClickListener(){

publicvoidonClick(Viewv){

//Whenbuttonisclicked,calluptoowningactivity.

((FragmentDialog)getActivity()).showDialog();

}

});

returnv;

}

}

⽰例2-AlertDialog

可以通过实现onCreateDialog(Bundle),直接来实现⾃定义Dialog

voidshowDialog(){

mStackLevel++;

//()willtakecareofaddingthefragment

//wanttoremoveanycurrentlyshowing

//dialog,somakeourowntransactionandtakecareofthathere.

FragmentTransactionft=getFragmentManager().beginTransaction();

Fragmentprev=getFragmentManager().findFragmentByTag("dialog");

if(prev!=null){

(prev);

}

ackStack(null);

//Createandshowthedialog.

DialogFragmentnewFragment=tance(mStackLevel);

(ft,"dialog");

}

publicstaticclassMyAlertDialogFragmentextendsDialogFragment{

publicstaticMyAlertDialogFragmentnewInstance(inttitle){

MyAlertDialogFragmentfrag=newMyAlertDialogFragment();

Bundleargs=newBundle();

("title",title);

uments(args);

returnfrag;

}

@Override

publicDialogonCreateDialog(BundlesavedInstanceState){

inttitle=getArguments().getInt("title");

r(getActivity())

.tIcon(_dialog_icon)

.tTitle(title)

.tPositiveButton(_dialog_ok,

kListener(){

publicvoidonClick(DialogInterfacedialog,intwhichButton){

((FragmentAlertDialog)getActivity()).doPositiveClick();

}

}

)

.tNegativeButton(_dialog_cancel,

kListener(){

publicvoidonClick(DialogInterfacedialog,intwhichButton){

((FragmentAlertDialog)getActivity()).doNegativeClick();

}

}

)

.create();

}

}

参考⽂档:

voidshowDialog(){

DialogFragmentnewFragment=tance(

_dialog_two_buttons_title);

(getFragmentManager(),"dialog");

}

publicvoiddoPositiveClick(){

//Dostuffhere.

Log.i("FragmentAlertDialog","Positiveclick!");

}

publicvoiddoNegativeClick(){

//Dostuffhere.

Log.i("FragmentAlertDialog","Negativeclick!");

}

本文发布于:2023-03-12 20:02:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678622559229363.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:手机弹窗.doc

本文 PDF 下载地址:手机弹窗.pdf

上一篇:芒果粥
下一篇:返回列表
标签:手机弹窗
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图