文档章节

DialogFragment基本使用

fantasiter
 fantasiter
发布于 2016/06/12 18:09
字数 263
阅读 61
收藏 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
博文 116
码字总数 24736
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

【Flutter教程】从零构建电商应用(一)

在这个系列中,我们将学习如何使用google的移动开发框架flutter创建一个电商应用。本文是flutter框架系列教程的第一部分,将学习如何安装Flutter开发环境并创建第一个Flutter应用,并学习Flu...

笔阁
16分钟前
5
0
什么是以太坊DAO?(三)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 投票支付合约的所有费用和行动需要时间,并要求用户始终保持活跃,知情和专注。另一...

geek12345
18分钟前
2
0
一个本科学生对Linux的认知

一个本科学生对Linux的认知 我是一名大三的普通一本大学的软件工程的一名学生,学校开设了一些关于系统开发的课程,纸上得来终觉浅,学校的课程课时较短,想要在56个课时之内学会一些公司需要...

linuxCool
今天
3
0
CentOS 安装Tomcat

Tomcat 介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Java 程序写的网站用tomcat+jdk来运...

野雪球
今天
1
0
OSChina 周四乱弹 —— 每天都迟到是种什么样的体验

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席机器人 :《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 ...

小小编辑
今天
798
13

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部