[Android分享] DialogFragment初次了解学习
来源:互联网 发布:js鞋子是什么牌子 编辑:程序博客网 时间:2024/05/17 23:46
该篇文章从eoeAndroid搬迁过来的,原文地址:[Android分享] DialogFragment初次了解学习
DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。
在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。兼容低版本sdk需要引用support-v4包的DialogFragment 创建一个dialogfragment的方法跟创建fragment的方法一样,新建一个类TestDialog,继承DialogFragment,重写onCreateView方法,在onCreateView方法里面加载布局,初始化控件,设置控件监听方法,处理业务逻辑等。
package com.example.testdialog;import android.app.DialogFragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.EditText;import android.widget.Toast;public class TestDialog extends DialogFragment implements OnClickListener { private EditText et_content; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.dialog_test, null); et_content = (EditText) view.findViewById(R.id.dialog_edit); view.findViewById(R.id.dialog_cancel).setOnClickListener(this); view.findViewById(R.id.dialog_certain).setOnClickListener(this); return view; } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.dialog_cancel: dismiss(); break; case R.id.dialog_certain: Toast.makeText(getActivity(), "内容:" + et_content.getText().toString(), Toast.LENGTH_SHORT).show(); dismiss(); break; default: break; } }}
布局文件dialog_test.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/dialog_edit" android:layout_width="match_parent" android:layout_height="120dp" android:hint="请填写内容" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/dialog_cancel" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="取消" /> <Button android:id="@+id/dialog_certain" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="确定" /> </LinearLayout></LinearLayout>
去除标题
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
背景透明设置
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
DialogFragment可以设置弹出位置,窗体大小,以及弹出或消失动画,需要在onstart方法里面添加相应的代码
修改弹出位置以及窗体大小
@Override public void onStart() { // TODO Auto-generated method stub super.onStart(); WindowManager.LayoutParams layoutParams = getDialog().getWindow().getAttributes(); DisplayMetrics displayMetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); layoutParams.width = displayMetrics.widthPixels; layoutParams.height = 800; layoutParams.gravity = Gravity.BOTTOM; getDialog().getWindow().setAttributes(layoutParams); }
添加动画效果
layoutParams.windowAnimations = R.style.style_dialog_test_anim;
动画样式
<style name="style_dialog_test_anim"> <item name="android:windowEnterAnimation">@anim/anim_dialog_show</item> <item name="android:windowExitAnimation">@anim/anim_dialog_dimiss</item> </style>
弹出动画anim_dialog_show.xml
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500" android:fromXDelta="0%" android:fromYDelta="100%" android:toXDelta="0%" android:toYDelta="0%" ></translate>
消失动画anim_dialog_dimiss.xml
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500" android:fromXDelta="0%" android:fromYDelta="0%" android:toXDelta="0%" android:toYDelta="100%" ></translate>
下载地址:项目代码
0 0
- [Android分享] DialogFragment初次了解学习
- android Ant初次接触了解
- 初次了解android的MVP
- Android DialogFragment 学习和理解
- Android NDK初次学习
- RxAndroid 学习笔记(一) 初次了解
- DialogFragment学习
- DialogFragment学习
- DialogFragment学习
- Android DialogFragment
- android Dialogfragment
- android DialogFragment
- Android DialogFragment
- 初次了解视图
- 初次了解Dagger2
- spring websocket 初次了解
- DAT.GUI-初次了解
- Android电视机(机顶盒)初次开发的一些经验分享
- SGU 282 Isomorphism(polya)
- 关于 HTML5 的文件上传处理,兼容,以及 BLOB 对象的使用
- loadrunner--介绍
- 百度地图api引入https问题
- myeclipse8.5 注册码
- [Android分享] DialogFragment初次了解学习
- Swift日志打印
- 在jsp页面中使用list列表来传递信息到action
- Mysql学习总结(13)——使用JDBC处理MySQL大数据
- hadoop起步之mapReduce
- Unity泛型单例模式
- CSS基础—样式
- Oracle中NLS_LANG的默认值
- Photos 框架实践以及坑