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