时间:2021-05-20
在网上学习了一种继承系统AlertDialog然后用一统一方法控制dialog显示的方法,效果还不错,但按钮栏那里的分隔线并不是想要的。于是去查看sdk中的AlertDialog的xml文件中的布局,发现其中并没有这一分隔线的影子,所以判断应该是在style中进行设置的。
在styles文件中找到常用的Dialog的主题如:"Theme.Holo.Light.Dialog"。
<style name="Theme.Holo.Light.Dialog"> <item name="windowFrame">@null</item> <item name="windowTitleStyle">@style/DialogWindowTitle.Holo.Light</item> <item name="windowBackground">@drawable/dialog_full_holo_light</item> <item name="windowIsFloating">true</item> <item name="windowContentOverlay">@null</item> <item name="windowAnimationStyle">@style/Animation.Holo.Dialog</item> <item name="windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="windowActionBar">false</item> <item name="windowActionModeOverlay">true</item> <item name="windowCloseOnTouchOutside">@bool/config_closeDialogWhenTouchOutside</item> <item name="colorBackgroundCacheHint">@null</item> <item name="buttonBarStyle">@style/Holo.Light.ButtonBar.AlertDialog</item> <item name="borderlessButtonStyle">@style/Widget.Holo.Light.Button.Borderless.Small</item> <item name="textAppearance">@style/TextAppearance.Holo.Light</item> <item name="textAppearanceInverse">@style/TextAppearance.Holo.Light.Inverse</item> <item name="listPreferredItemPaddingLeft">16dip</item> <item name="listPreferredItemPaddingRight">16dip</item> <item name="listPreferredItemPaddingStart">16dip</item> <item name="listPreferredItemPaddingEnd">16dip</item> <item name="preferencePanelStyle">@style/PreferencePanel.Dialog</item></style>在其中找到有关按钮栏的样式:“Holo.Light.ButtonBar.AlertDialog”。
<style name="Holo.Light.ButtonBar.AlertDialog"> <item name="background">@null</item> <item name="dividerPadding">0dp</item> </style>发现这里没有有关分隔线的设置,于是接着看它的父样式:"Holo.Light.ButtonBar"。
<style name="Holo.Light.ButtonBar" parent="Holo.ButtonBar" />这里只是继承了“Holo.ButtonBar”,所以接着向上找。
<style name="Holo.ButtonBar" parent="ButtonBar"> <item name="paddingTop">0dip</item> <item name="paddingStart">0dip</item> <item name="paddingEnd">0dip</item> <item name="paddingBottom">0dip</item> <item name="divider">?attr/dividerVertical</item> <item name="showDividers">middle</item> <item name="dividerPadding">12dip</item> <item name="background">@null</item></style>终于看到了有关divider的属性。
<item name="divider">?attr/dividerVertical</item><item name="showDividers">middle</item><item name="dividerPadding">12dip</item>name="divider“
属性名为“divider”的值是一个dividerVertical的引用。
<!-- Drawable to use for generic vertical dividers. --> <attr name="dividerVertical" format="reference" />然后theme文件中找到它。
<item name="dividerVertical">?attr/listDivider</item>发现dividerVertical的值还是一个引用listDivider,于是我们继续在theme文件中找到listDivider。
<item name="listDivider">@drawable/list_divider_holo_dark</item>到这,就知道了名为”divider“的属性最终是引用了一个drawable来当做分隔线。
name="showDividers"
android:showDividers属性可以设置如下4个值:
所以如果不想按钮栏带有分隔线就可以创建自己的按钮栏样式并继承”Holo.Light.ButtonBar.AlertDialog“,然后将这一属性设为"none"。
<style name="My_ButtonBar_Style" parent="@android:style/Holo.Light.ButtonBar.AlertDialog"> <item name="android:showDividers">none</item></style>然后将自定义的样式加入自定义的alert_dialog主题中,这样divider就不会再显示了。
<style name="alert_dialog" parent="@android:style/Theme.Holo.Light.Dialog"> <item name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">false</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowBackground"> @android:color/transparent</item> <item name="android:buttonStyle">@style/Button_Style</item> <item name="android:buttonBarStyle">@style/Gui_ButtonBar_Style</item></style>除去divider.png
name="dividerPadding"
这一属性就是分隔线对于按钮栏的padding。例如,如果是垂直的divider,则这一padding就是divider距离按钮栏上下边界的距离。
dividerPadding.png
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.表格的分隔线可以隐藏可以隐藏横向的分隔线可以隐藏纵向的分隔线可以隐藏横向和纵向的分隔线2.表格的边框不断在闪以下方法可以令表格的边框不断在闪,很实用的在BO
1.表格的分隔线可以隐藏可以隐藏横向的分隔线可以隐藏纵向的分隔线可以隐藏横向和纵向的分隔线2.表格的边框不断在闪以下方法可以令表格的边框不断在闪,很实用的在BO
需求:原理:拖动效果的实现基本都是dom操作来实现的,通过拖动分隔线,计算分隔线与浏览器边框的距离(left),来实现拖动之后的不同宽度的计算;当拖动分隔线1时
用户在使用Word编辑文档时,经常需要使用直线或虚线作为文档的横向分隔线。用户可以在Word中输入某些特殊符号并按回车键来快速插入横向分隔线。例如:连续输入3个
word加两栏分隔线的方法: 1、打开电脑找到并双击打开word2016版文档软件; 2、双击打开word文档软件以后,在上方的工具栏中找到并点击“布局”的