文档章节

DialogFragment基本使用

fantasiter
 fantasiter
发布于 2016/06/12 18:09
字数 263
阅读 34
收藏 0
点赞 0
评论 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

更好用的DialogFragment

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

一本未写完的书 ⋅ 2017/11/23 ⋅ 0

Android 撸起袖子,自己封装 DialogFragment

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

developerHaoz ⋅ 2017/09/12 ⋅ 0

DialogFragment(二)——创建默认dialogFragment

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

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

DialogFragment(一)——简介

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

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

Android中Dialog与DialogFragment的对比

最近学习对话框时发现有两种类型的可供使用,一种是Dialog,另一种则是Android 3.0 引入的基于Fragment的DialogFragment。 从代码的编写角度看,Dialog使用起来要更为简单,但是Google则是推...

风荷举 ⋅ 2013/11/26 ⋅ 1

support.v4.app.DialogFragment使用问题总结

因app需求问题,需要实现如图这种dialog 看到这里,你可能会说如此easy的事情,还说什么! 那么继续往下看! 场景1: import android.app.Dialog;import android.content.DialogInterface;i...

artshell ⋅ 2015/06/11 ⋅ 0

DialogFragment生命周期简介

之前一篇文章Dialog使用介绍介绍了DialogFragemnt的一些使用常识,本文来简单介绍DialogFragment常用的生命周期函数,调用顺序如下: onAttach -->onCreate-->onCreateDialog-->onCreateView...

JackMeGo ⋅ 2017/05/10 ⋅ 0

DialogFragment(三)——自定义dialogFragment父类

前言 前面已经讲过dialogFragment的简介和默认用法,但默认创建的dialogFragment虽然使用方便但有不少局限,所以今天就讲讲自定义dialogFragment的知识 涉及以下知识点: dialogFragment的父...

奔跑的佩恩 ⋅ 2017/12/26 ⋅ 0

zzhoujay/FileSelector

#FileSelector ##Android平台下的文件选择器 使用Android Studio,所以要引用该库也需时使用Android Studio开发 支持Activity、DialogFragment、AlertDialog三种模式进行文件选择 若不需要自...

zzhoujay ⋅ 2015/04/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 今天 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部