Android去除AlertDialog的按钮栏的分隔线

  

在网上学习了一种继承系统AlertDialog然后用一统一方法控制对话框显示的方法,效果还不错,但按钮栏那里的分隔线并不是想要的。于是去查看sdk中的AlertDialog的xml文件中的布局,发现其中并没有这一分隔线的影子,所以判断应该是在风格中进行设置的。

  

 Android去除AlertDialog的按钮栏的分隔线

  

在风格文件中找到常用的对话框的主题如:“Theme.Holo.Light.Dialog”。

        & lt;样式名=癟heme.Holo.Light.Dialog”比;   & lt;项目名称=" windowFrame "祝辞@null   & lt;项目名称=" windowTitleStyle "祝辞@style/DialogWindowTitle.Holo.Light   & lt;项目名称=" windowBackground "祝辞@drawable/dialog_full_holo_light   & lt;项目名称=" windowIsFloating "祝辞true   & lt;项目名称=" windowContentOverlay "祝辞@null   & lt;项目名称=" windowAnimationStyle "祝辞@style/Animation.Holo.Dialog   & lt;项目名称=" windowSoftInputMode "祝辞stateUnspecified | adjustPan   & lt;项目名称=" windowActionBar "祝辞false   & lt;项目名称=" windowActionModeOverlay "祝辞true   & lt;项目名称=" windowCloseOnTouchOutside "祝辞@bool/config_closeDialogWhenTouchOutside      & lt;项目名称=" colorBackgroundCacheHint "祝辞@null      & lt;项目名称=" buttonBarStyle "祝辞@style/Holo.Light.ButtonBar.AlertDialog   & lt;项目名称=" borderlessButtonStyle "祝辞@style/Widget.Holo.Light.Button.Borderless.Small      & lt;项目名称=" textAppearance "祝辞@style/TextAppearance.Holo.Light   & lt;项目名称=" textAppearanceInverse "祝辞@style/TextAppearance.Holo.Light.Inverse      & lt;项目名称=發istPreferredItemPaddingLeft”在16 dip   & lt;项目名称=發istPreferredItemPaddingRight”在16 dip   & lt;项目名称=發istPreferredItemPaddingStart”在16 dip   & lt;项目名称=發istPreferredItemPaddingEnd”在16 dip      & lt;项目名称=" preferencePanelStyle "祝辞@style/PreferencePanel.Dialog   & lt;/style>      

在其中找到有关按钮栏的样式:“Holo.Light.ButtonBar.AlertDialog”。

        & lt;样式名=癏olo.Light.ButtonBar.AlertDialog”比;   & lt;项目名称="背景"祝辞@null   & lt;项目名称=癲ividerPadding”在0 dp   & lt;/style>      

发现这里没有有关分隔线的设置,于是接着看它的父样式:“Holo.Light.ButtonBar”。

        & lt;样式名=" Holo.Light。ButtonBar“父母="整体。ButtonBar "/祝辞      

这里只是继承了“Holo.ButtonBar”,所以接着向上找。

        & lt;样式名="整体。ButtonBar ButtonBar“父=比;   & lt;项目名称=皃addingTop”在0 dip   & lt;项目名称=皃addingStart”在0 dip   & lt;项目名称=皃addingEnd”在0 dip   & lt;项目名称=皃addingBottom”在0 dip   & lt;项目名称=胺指簟弊4? # 63;attr/dividerVertical   & lt;项目名称=" showDividers "祝辞middle   & lt;项目名称=癲ividerPadding”在12 dip   & lt;项目名称="背景"祝辞@null   & lt;/style>   之前      

终于看到了有关分配器的属性。

        & lt;项目名称=胺指簟弊4? # 63;attr/dividerVertical   & lt;项目名称=" showDividers "祝辞middle   & lt;项目名称=癲ividerPadding”在12 dip      

<强> name=胺指簟?/强>

  

属性名为“分”的值是一个dividerVertical的引用。

        & lt; !——可拉的用于通用垂直分规。——比;   & lt; attr name==安慰肌?癲ividerVertical”格式在      

然后主题文件中找到它。

        & lt;项目名称=" dividerVertical "祝辞& # 63;attr/listDivider      

发现dividerVertical的值还是一个引用listDivider,于是我们继续在主题文件中找到listDivider。

        & lt;项目名称=" listDivider "祝辞@drawable/list_divider_holo_dark      

到这,就知道了名为“分”的属性最终是引用了一个可拉的来当做分隔线。

  

<强> name=" showDividers "

Android去除AlertDialog的按钮栏的分隔线