Android自定义Dialog对话框
2017-01-16 20:20
387 查看
Android自定义Dialog对话框
一些比较好的app都有自己专属样式的对话框,几乎没有用android提供的最原始的对话框。这里有别人博客里介绍的一段话----DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。DialogFragment好处与用法:使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。且DialogFragment也允许开发者把Dialog作为内嵌的组件进行重用,类似Fragment。使用DialogFragment至少需要实现onCreateView或者onCreateDIalog方法。onCreateView即使用定义的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog创建出Dialog。自定义对话框的步骤就是:
一:自己定义好对话框的布局
下面的布局是自己随便定义的,代码就不贴了,看下布局的样子。
二:利用DialogFragment类生成对话框
即定义一个类继承DialogFragment,并重写onCreateView方法。onCreateDialog方法感觉不如前者灵活,就不介绍了。在onCreateView方法中,设置对话框布局,并用接口回调在activity取得布局的view来进行使用。
`public class MyDialog extends DialogFragment {
private View contentView; /** * Activity需要实现这个接口来接收Dialog的View. */ public interface OnGetContentViewListener{ public void onGetView(View view); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//set no title //*****set contentView Layout***** contentView=inflater.inflate(R.layout.test,null); //*****set contentView Layout***** OnGetContentViewListener listener= (OnGetContentViewListener) getActivity(); listener.onGetView(contentView);//send contentView to Activity return contentView; }
}`
测试:
public class MainActivity extends AppCompatActivity implements MyDialog.OnGetContentViewListener{
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void cl(View v) { MyDialog dialog=new MyDialog(); dialog.show(getSupportFragmentManager(),""); } @Override public void onGetView(View view) { Toast.makeText(MainActivity.this, ((Button)view.findViewById(R.id.ll)).getText(), Toast.LENGTH_SHORT).show(); }
}
效果如图:
未完待续
相关文章推荐
- 21. android dialog——自定义对话框之二
- Android自定义对话框(Dialog)位置,大小
- Android 自定义对话框(Dialog)设置显示大小方向
- Android自定义对话框(Dialog)位置,大小
- Android学习—自定义对话框Dialog
- Android自定义Dialog对话框
- Android自定义对话框(Dialog)位置,大小
- Android自定义对话框(Dialog)位置,大小
- android 继承dialog自定义对话框
- android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框
- Android中自定义对话框(Dialog)
- Android UI【android 自定义dialog 多选项对话框】
- Android实现自定义对话框(Dialog)
- 20. android dialog——自定义对话框之一
- Android自定义对话框(Dialog)位置,大小
- Android中自定义对话框(Dialog)
- [Android] Android自定义对话框(Dialog)位置,大小
- android 中Dialog对话框及自定义Dialog的方法
- Android自定义对话框(Dialog)位置,大小
- Android自定义对话框(Dialog)位置,大小