DialogFragment宽度问题处理
来源:互联网 发布:北斗tv有网络电视版吗 编辑:程序博客网 时间:2024/06/10 18:08
看官方文档上Dialogs说明时,使用layout进行自定义布局,遇到常见的自定义Dialog宽度处理问题。找到三种方法解决之:
1.跟布局添加minWidth
这个和View的measure有关,View在measure时先会取该minWidth和backgroundDrawable.width。
2.设置Style
直接设置成Theme.holo,该效果是默认Alert.Dialog的宽度效果。
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog_MinWidth); }
也可以直接设置为自己的style,该style没有内部Padding,宽度完全为屏幕宽度。DialogFragment内部的默认Theme.Panel不是很实用。
<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowFrame">@null</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@style/BottomDialogStyle</item> </style>//对话框弹出动画 <style name="BottomDialogStyle" parent="Animation.AppCompat.Dialog"> <item name="android:windowEnterAnimation">@anim/bottom_in</item> <item name="android:windowExitAnimation">@anim/bottom_out</item> </style>
3.修改Dialog的LayoutParams
这种方式可操控性强。但也收到Dialog的style的影响。默认的style会有一个全局的Padding,导致宽度不能完全扩展到屏幕。
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); WindowManager.LayoutParams attributes = getDialog().getWindow().getAttributes(); attributes.width = 800; attributes.height = -2; getDialog().getWindow().setAttributes(attributes); }
0 0
- DialogFragment宽度问题处理
- Android 自定义 DialogFragment 宽度问题
- Android 自定义 DialogFragment 宽度问题
- Android 自定义 DialogFragment 宽度问题
- Android 自定义 DialogFragment 宽度问题
- DialogFragment宽度设置
- 自定义DialogFragment宽度
- Android之DialogFragment宽度充满屏幕
- DialogFragment显示问题。
- DialogFragment
- dialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- ceph-fuse hangs on starting ceph client
- 杭电oj 2019 数列有序
- TinyHttp-最简单的Web Server浅析
- Java注解简单介绍
- 学习Java第一天
- DialogFragment宽度问题处理
- linux-export
- STL-算法总结
- fragment传值给Activity
- MVC设计模式
- Class类文件加载机制
- Qt例子一 AddressBook测试学习
- Java day02 类型转换(2)
- POJ 1325 Machine Schedule(二分匹配-hungary)