• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android 官方推荐 : DialogFragment 怎样创建对话框

Android 官方推荐 : DialogFragment 怎样创建对话框

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了dialogfragment,dialogfragment样式,dialogfragment全屏,dialogfragment.show,dialogfragment使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android 官方推荐 : DialogFragment 怎样创建对话框


1、 概述
DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。
在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。
2、 好处与用法
使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。且DialogFragment也允许开发者把Dialog作为内嵌的组件进行重用,类似Fragment(可以在大屏幕和小屏幕显示出不同的效果)。上面会通过例子展示这些好处~

使用DialogFragment至少需要实现onCreateView或者onCreateDIalog方法。onCreateView即使用定义的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog创建出Dialog。

3、 重写onCreateView创建Dialog

a)布局文件,我们创建一个设置名称的布局文件:

 

[html]view plaincopy  </div>  </div>  </div>
  1.  
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content">
  4.  
  5. android:id="@+id/id_label_your_name"
  6. android:layout_width="wrap_content"
  7. android:layout_height="32dp"
  8. android:gravity="center_vertical"
  9. android:text="Yourname:"/>
  10.  
  11. android:id="@+id/id_txt_your_name"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:layout_toRightOf="@id/id_label_your_name"
  15. android:imeOptions="actionDone"
  16. android:inputType="text"/>
  17.  
  18. android:id="@+id/id_sure_edit_name"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_alignParentRight="true"
  22. android:layout_below="@id/id_txt_your_name"
  23. android:text="ok"/>
  24.  
  25.  </div>
    b)继承DialogFragment,重写onCreateView方法

     

     

    [java]view plaincopy  </div>  </div>  </div>
    1. packagecom.example.zhy_dialogfragment;
    2.  
    3. importandroid.app.DialogFragment;
    4. importandroid.os.Bundle;
    5. importandroid.view.LayoutInflater;
    6. importandroid.view.View;
    7. importandroid.view.ViewGroup;
    8.  
    9. publicclassEditNameDialogFragmentextendsDialogFragment
    10. {
    11.  
    12.  
    13. @Override
    14. publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
    15. BundlesavedInstanceState)
    16. {
    17. Viewview=inflater.inflate(R.layout.fragment_edit_name,container);
    18. returnview;
    19. }
    20.  
    21. }  </div>
      c)测试运行:

       

      Main方法中调用:

       

      [java]view plaincopy  </div>  </div>  </div>
      1. publicvoidshowEditDialog(Viewview)
      2. {
      3. EditNameDialogFragmenteditNameDialog=newEditNameDialogFragment();
      4. editNameDialog.show(getFragmentManager(),"EditNameDialog");
      5. }  </div> 效果图:

         

         

        </div> 可以看到,对话框成功创建并显示出来,不过默认对话框有个讨厌的标题,我们怎么去掉呢:可以在onCreateView中调用getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);即可去掉。即:</div> view plaincopy  </div> </div>  </div>
        1. publicclassEditNameDialogFragmentextendsDialogFragment
        2. {
        3.  
        4. @Override
        5. publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
        6. BundlesavedInstanceState)
        7. {
        8. getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
        9. Viewview=inflater.inflate(R.layout.fragment_edit_name,container);
        10. returnview;
        11. }
        12.  
        13. }  </div>
          效果图:  </div> </div> 很完美的去掉了讨厌的标题。</div>  </div>
          4、 重写onCreateDialog创建Dialog
          在onCreateDialog中一般可以使用AlertDialog或者Dialog创建对话框,不过既然google不推荐直接使用Dialog,我们就使用AlertDialog来创建一个登录的对话框。

           

          a)布局文件

           

          [html]view plaincopy  </div>  </div>  </div>
          1.  
          2. android:layout_width="wrap_content"
          3. android:layout_height="wrap_content"
          4. android:orientation="vertical">
          5.  
          6. android:layout_width="match_parent"
          7. android:layout_height="64dp"
          8. android:background="#FFFFBB33"
          9. android:contentDescription="@string/app_name"
          10. android:scaleType="center"
          11. android:src="@drawable/title"/>
          12.  
          13. android:id="@+id/id_txt_username"
          14. android:layout_width="match_parent"
          15. android:layout_height="wrap_content"
          16. android:layout_marginBottom="4dp"
          17. android:layout_marginLeft="4dp"
          18. android:layout_marginRight="4dp"
          19. android:layout_marginTop="16dp"
          20. android:hint="inputusername"
          21. android:inputType="textEmailAddress"/>
          22.  
          23. android:id="@+id/id_txt_password"
          24. android:layout_width="match_parent"
          25. android:layout_height="wrap_content"
          26. android:layout_marginBottom="16dp"
          27. android:layout_marginLeft="4dp"
          28. android:layout_marginRight="4dp"
          29. android:layout_marginTop="4dp"
          30. android:fontFamily="sans-serif"
          31. android:hint="inputpassword"
          32. android:inputType="textPassword"/>
          33.  
          34.  </div>
            b)继承DialogFragment重写onCreateDialog方法

             

             

            [java]view plaincopy  </div>  </div>  </div>
            1. packagecom.example.zhy_dialogfragment;
            2.  
            3. importandroid.app.AlertDialog;
            4. importandroid.app.Dialog;
            5. importandroid.app.DialogFragment;
            6. importandroid.content.DialogInterface;
            7. importandroid.os.Bundle;
            8. importandroid.view.LayoutInflater;
            9. importandroid.view.View;
            10. importandroid.view.ViewGroup;
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详细解读DialogFragment,解读dialogfragment
  • Android 官方推荐 : DialogFragment 怎样创建对话框

相关文章

  • 2017-05-26Android.mk模板(持续更新中),android.mk更新中
  • 2017-05-26ubuntu vncserver搭建
  • 2017-05-26Android开发日常-listVIiew嵌套webView回显阅读位置,-listviiewwebview
  • 2017-05-26Android DEX 基础,androiddex基础
  • 2017-05-26xshell可以ping通但是不能远程服务器,putty可以远程
  • 2017-05-26二维码Zxing&amp;Zbar,zxing
  • 2017-05-26Android之数据存储的五种方法,android五种
  • 2017-05-26Glide的常用方法注释,Glide常用方法注释
  • 2017-05-26在Android Studio 配置OpenCV 3.1
  • 2017-05-26利用zabbix监控国际线路的延迟情况

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android缓存处理
    • ReactNative官方中文文档0.21,reactnative0.21
    • [android] 手机卫士自定义控件的属性,android卫士
    • Android中Dialog对话框,androiddialog
    • Android表单UI及相应控件的事件处理,android表单ui控件
    • 手机影音10--音乐列表,影音10--列表
    • Android ViewTreeObserver(转载),viewtreeobserver
    • android:listview实现qq,微信好友列表(头像,昵称,个性签名)
    • Android面试题精选
    • linux设备驱动程序之时钟管理(1)----最初的印象

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有