文档章节

DialogFragment基本使用

fantasiter
 fantasiter
发布于 2016/06/12 18:09
字数 263
阅读 44
收藏 0

第一种:


    //第一种创建Dialog的方式
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        getDialog().setCanceledOnTouchOutside(true);//设置点击外部Dialog消失
        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置Dialog外部透明
        getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉Dialog标题
        View view = inflater.inflate(R.layout.dialog_fragment_layout, container, false);//传入Dialog布局文件
        return view;
    }

   //实现去标题效果除了onCreateView里的写法外,还可以这么写,必须放在onCreate里
   //    @Override
   //    public void onCreate(Bundle savedInstanceState) {
   //        super.onCreate(savedInstanceState);
   //        setStyle(DialogFragment.STYLE_NO_TITLE, 
   //        android.R.style.Theme_Holo_Light_Dialog_MinWidth);//必须放到此处起作用
   //    }

    @Override
    public void onStart() {
        super.onStart();
        //控制Dialog在Window中的宽度和高度
        WindowManager.LayoutParams lp = getDialog().getWindow().getAttributes();
        lp.y = 100;
        lp.x = 0;
        lp.width = (int) (getScreenWidth()*0.8);
        lp.height = (int) (getScreenHeight() * 0.6);
        getDialog().getWindow().setAttributes(lp);
    }

    //获取屏幕宽度
    public int getScreenWidth() {
        DisplayMetrics dm = getResources().getDisplayMetrics();
        return dm.widthPixels;
    }

    //获取屏幕高度
    public int getScreenHeight() {
        DisplayMetrics dm = getResources().getDisplayMetrics();
        Log.e("screenHeight",dm.heightPixels+"");
        return dm.heightPixels;
    }

第二种方式和产生一个AlertDialog相似:


@NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getActivity().getLayoutInflater();
        View contentView = inflater.inflate(R.layout.dialog_test2_fragment_layout,null);
        builder.setView(contentView).setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        }).setNegativeButton("取消",null);
        return builder.create();
    }

© 著作权归作者所有

共有 人打赏支持
fantasiter
粉丝 1
博文 115
码字总数 24535
作品 0
青岛
Android官方推荐使用DialogFragment替换AlertDialog

DialogFragment是在Android3.0(API level 11)中引入的,它代替了已经不建议使用的AlertDialog。 DialogFragment高效地封装和管理对话框的生命周期,并让Fragment和它包含的对话框的状态保持...

u010687392
2015/05/25
0
0
更好用的DialogFragment

工作中总是要用到各式各样的对话框,通常我们首先会想到的就是Dialog。在以前的时候我通常都会自定义一个Dialog,然后在里面写一个接口,让需要创建这个Dialog的界面继承这个接口,实现点击事...

一本未写完的书
2017/11/23
0
0
Android 撸起袖子,自己封装 DialogFragment

前言 具体的代码以及示例我都放上 Github 了,有需要的朋友可以去看一下 DialogFragmentDemos,欢迎 star 和 fork. 本文的主要内容 DialogFragment 是什么 创建通用的 CommonDialogFragment...

developerHaoz
2017/09/12
0
0
DialogFragment(二)——创建默认dialogFragment

前言 上篇我们对dialogFragment做了一个简单的介绍, DialogFragment(一)——简介 这篇文章,我们来讲讲默认dialogFragment的创建和使用 讲解重点 AppCompatActivity 和 DialogFragment 去掉...

奔跑的佩恩
2017/12/13
0
0
DialogFragment(一)——简介

前言 以前经常用dialog作为弹出框,但是google推荐我们使用新的dialog模式,即DialogFragment,今天就来讲讲dialogFragment相关知识点 本文涉及知识点: dialogFragment 相对 dialog 的优势 ...

奔跑的佩恩
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

讲述下 :LVM逻辑卷管理遇到的问题

LVM学习逻辑卷管理创建逻辑卷遇到的问题 1 实验环境 系统 内核 发行版本 CentOS 2.6.32-754.2.1.el6.x86_64 CentOS release 6.10 (Final) 由于是最小化安装没有xfs命令,yum安装如下包支持此...

linuxprobe16
37分钟前
0
0
day95-20180922-英语流利阅读-待学习

Hey Jude 半个世纪传唱不衰的背后故事 毛西 2018-09-22 1.今日导读 2004 年,The Beatles 被《滚石》杂志选为“历史上最伟大的 50 位流行音乐家的第一位”。这四名来自英国利物浦的男孩不仅对...

飞鱼说编程
44分钟前
1
0
OSChina 周六乱弹 —— 放假前期焦虑症晚期

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享Matteo的单曲《Panama》: 《Panama》- Matteo 手机党少年们想听歌,请使劲儿戳(这里) @新垣吉衣OSC :我发现只要去有小朋友...

小小编辑
今天
163
9
wait()被notify()后,接着执行wait()后面的语句

wait()被notify()后,接着执行wait()后面的语句

noteman
今天
1
0
Ubuntu集群-使用MAAS开始裸机安装

Ubuntu使用MAAS装机的七个步骤。 1、Setup your hardware You need one small server for MAAS and at least one server which can be managed with a BMC. It is recommended to have the M......

openthings
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部