改变FragmentDialog弹出框大小
来源:互联网 发布:mysql join 默认值 编辑:程序博客网 时间:2024/06/05 16:36
改变FragmentDialog弹出框大小
版权声明:本文为博主原创文章,未经博主允许不得转载。
一个很常见的支付弹出框,大概效果是这样的:
初看之下,这不就是一个普通的弹出框么,于是决定用Android官推的DialogFragment实现这种弹出框,然而,实践是检验真理唯一标准,开撸之后才发现暗藏杀招呀。如果中规中矩的一步步写下去(继承DialogFragment,重写onCreateView方法),则出来的效果:
额,貌似好尴尬呀!说好的圆角呢,说好的正方形背景呢。。。明明在xml中设置背景了呀,不管用?!
<com.zhy.autolayout.AutoLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical" android:background="@drawable/rec_cirwhite" tools:context=".DialogFragmentInput"> <TextView android:id="@+id/tv_result_pay" android:layout_width="match_parent" android:layout_height="172px" android:textColor="@color/colorText" android:textSize="36px" android:textStyle="bold" android:gravity="center" android:text="支付失败"/> <View android:layout_width="match_parent" android:layout_height="1px" android:background="@color/colorDivider"/> <LinearLayout android:layout_width="match_parent" android:layout_height="170px" android:gravity="center" android:padding="20px"> <TextView android:id="@+id/tv_cancel_pay" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:textStyle="bold" android:background="@drawable/circlegraybg" android:textSize="13sp" android:textColor="@color/colorWhite" android:gravity="center" android:paddingTop="5dp" android:paddingBottom="5dp" android:text="取消"/> <View android:id="@+id/v_pay" android:layout_width="10dp" android:layout_height="match_parent"/> <TextView android:id="@+id/tv_repay_pay" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:textStyle="bold" android:background="@drawable/circlegreenbg" android:textSize="13sp" android:textColor="@color/colorWhite" android:gravity="center" android:paddingTop="5dp" android:paddingBottom="5dp" android:text="重新支付"/> <TextView android:id="@+id/tv_confirm_pay" android:layout_width="134px" android:layout_height="60px" android:background="@drawable/circlegreenbg" android:text="确定" android:textColor="@color/colorWhite" android:textSize="13sp" android:gravity="center"/> </LinearLayout></com.zhy.autolayout.AutoLinearLayout>
关于背景@drawable/rec_cirwhite是这么写的:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="120dp"/> <solid android:color="@color/colorWhite"/></shape>
这怎么看都不应该是那个样子。。。
很明显是DialogFragment的问题,貌似是系统默认定制过深,于是赶紧找解决办法:
实现圆角:
在onCreateView方法内加上该段代码:
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
改变DialogFragment大小:
重写onStart方法:
@Override public void onStart() { super.onStart(); Dialog dialog = getDialog(); if (dialog != null) { DisplayMetrics dm = new DisplayMetrics(); //设置弹框的占屏宽 getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); dialog.getWindow().setLayout((int) (dm.widthPixels * 0.5), ViewGroup.LayoutParams.WRAP_CONTENT); } }
多了这几段代码,运行出来的效果
是不是可爱了很多,最后源码奉上:
弹出框代码
阅读全文
1 0
- 改变FragmentDialog弹出框大小
- 自定义FragmentDialog视图大小和位置设置
- SHBrowseForFolder如何改变弹出窗口的大小
- AlertDialog自定义View的用法+如何改变弹出框的大小
- UE如何改变点击上传图片的弹出框的大小...
- FragmentDialog 代码
- PopupWindow弹出框自适应屏幕改变弹出方向
- 动态改变弹出框的内容
- linux改变输入框大小(改变分辨率)
- 改变子窗口、弹出窗口和顶层窗口的大小、位置和Z轴次序
- 弹出框适应窗口大小(1)
- 弹出框适应窗口大小(2)
- WPF 无框窗口改变大小
- TextView输入文字改变输入框大小
- 如何改变编辑框字体的大小
- MindManager改变主题框大小的方法
- android checkbox改变复选框大小颜色
- 改变大小控件
- 基于排序机制的wordcount程序
- 《机器学习实战》学习笔记-[5]-logistic回归
- 二进制、八进制、十进制、十六进制之间的转换
- SpringBoot的启动过程
- 第三场个人训练赛
- 改变FragmentDialog弹出框大小
- 20170709_网络层的题目、子网划分、子网掩码、CIDR技术
- HIVE和HBASE区别
- Servlet学习
- Volley是如何把response deliver到Main Thread的?
- Tomcat配置及使用
- TensorFlow读取tfrecords数据
- 玩转消息队列之C/C++代码
- SPOJ QTREE