底部弹出DialogFragment+与Activity数据交互
来源:互联网 发布:淘宝情侣网店是什么 编辑:程序博客网 时间:2024/05/01 22:34
先贴上效果图:
实现步骤特别简单:
1.新建DialogFragment类,在OnCreateView中返回你自定义的view.
public class ADDialogFragment extends DialogFragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //加这句话去掉自带的标题栏 getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); View view = inflater.inflate(R.layout.dialogfragment_person, null); //init(view); return view; }}
自定义dialogfragment_person的布局文件如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/white" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15.5dp" android:gravity="center_horizontal" android:text="请选择乘车人数" android:textColor="#666666" android:textSize="16sp"/> <TextView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16.5dp" android:gravity="center_horizontal" android:text="1人" android:textColor="#333333" android:textSize="18sp"/> <TextView android:id="@+id/tv2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16.5dp" android:gravity="center_horizontal" android:text="2人" android:textColor="#333333" android:textSize="18sp"/> <TextView android:id="@+id/tv3" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16.5dp" android:gravity="center_horizontal" android:text="3人" android:textColor="#333333" android:textSize="18sp"/> <TextView android:id="@+id/tv4" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16.5dp" android:layout_marginBottom="16.5dp" android:gravity="center_horizontal" android:text="4人" android:textColor="#333333" android:textSize="18sp"/></LinearLayout>
在MainActivity的Button(或ImageView或其他)的点击事件中作如下处理即可弹出dialogfragment:
ADDialogFragment dialogFragment = new ADDialogFragment();dialogFragment.show(getFragmentManager(),"android");
ok了,这时你会发现它显示在页面中央,但是我们想让dialogfragment显示到页面底部,那么只需在DialogFragment中添加如下代码即可:
@Overridepublic void onStart() { super.onStart(); Window window = getDialog().getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.gravity = Gravity.BOTTOM; params.width = WindowManager.LayoutParams.MATCH_PARENT; window.setAttributes(params); //设置背景透明 window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));}
最后一步:传递数据到MainActivity中:
在dialogfragment中:
public interface OnDialogListener { void onDialogClick(String person);}public void setOnDialogListener(OnDialogListener dialogListener){ this.mlistener = dialogListener;}
在Textview的点击事件中:
public OnDialogListener mlistener;@Overridepublic void onClick(View view) { switch (view.getId()) { case R.id.tv1: mlistener.onDialogClick("1"); dismiss(); break; case R.id.tv2: mlistener.onDialogClick("2"); dismiss(); break; case R.id.tv3: mlistener.onDialogClick("3"); dismiss(); break; case R.id.tv4: mlistener.onDialogClick("4"); dismiss(); break; }}
在MainActivity中实现此接口即可:
dialogFragment.setOnDialogListener(new PersonDialogFragment.OnDialogListener() { @Override public void onDialogClick(String person) { ToastUtil.showToast(person); }});
0 0
- 底部弹出DialogFragment+与Activity数据交互
- DialogFragment从底部弹出
- Activity与DialogFragment交互的方法
- Activity 与 DialogFragment 之间的数据传递
- Android DialogFragment实现底部弹出菜单效果
- Android屏幕底部弹出DialogFragment(3)
- android DialogFragment底部弹出,自定义大小
- 使用DialogFragment从底部弹出对话框
- 自定义dialogfragment实现底部弹出框效果
- 自定义 DialogFragment 实现底部弹出 dialog
- Android回调机制之Activity与DialogFragment数据传递
- DialogFragment 使用与友好交互
- DialogFragment弹出后Activity背景不变暗
- 使用DialogFragment实现支付宝支付从底部弹出效果
- 使用 DialogFragment 和 BottomSheet 实现底部弹出框
- activity从底部弹出动画
- activity与fragment之间的数据交互
- fragment与activity实现数据交互
- effective java 学习笔记 0.前记
- JSON.stringify IE6,7,8的兼容性
- [ActiveForm] -- AcitiveForm完整用例
- 关于状态栏的小结
- 线程安全性
- 底部弹出DialogFragment+与Activity数据交互
- OSI七层协议模型
- 时间格式设置成24小时格式会导致CTS 的一些cases failed
- oracle数据字典详解:内部RDBMS(X$)表、数据字典表、动态性能(v$)视图、数据字典视图
- 5分钟读完《增长黑客》
- 总结jconsole远程连接linux下tomcat
- 4.1 Swift中if语句的基本用法
- web中链接多媒体
- hdu 3466 Pround Merchants 排序+01背包