国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android去除AlertDialog的按鈕欄的分隔線

2019-10-22 18:10:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在網(wǎng)上學(xué)習(xí)了一種繼承系統(tǒng)AlertDialog然后用一統(tǒng)一方法控制dialog顯示的方法,效果還不錯(cuò),但按鈕欄那里的分隔線并不是想要的。于是去查看sdk中的AlertDialog的xml文件中的布局,發(fā)現(xiàn)其中并沒(méi)有這一分隔線的影子,所以判斷應(yīng)該是在style中進(jìn)行設(shè)置的。

Android,AlertDialog,按鈕欄,分隔線

在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>

在其中找到有關(guān)按鈕欄的樣式:“Holo.Light.ButtonBar.AlertDialog”。

<style name="Holo.Light.ButtonBar.AlertDialog">    <item name="background">@null</item>    <item name="dividerPadding">0dp</item> </style>

發(fā)現(xiàn)這里沒(méi)有有關(guān)分隔線的設(shè)置,于是接著看它的父樣式:"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>

終于看到了有關(guān)divider的屬性。

<item name="divider">?attr/dividerVertical</item><item name="showDividers">middle</item><item name="dividerPadding">12dip</item>

name="divider“

屬性名為“divider”的值是一個(gè)dividerVertical的引用。

 <!-- Drawable to use for generic vertical dividers. --> <attr name="dividerVertical" format="reference" />

然后theme文件中找到它。

<item name="dividerVertical">?attr/listDivider</item>

發(fā)現(xiàn)dividerVertical的值還是一個(gè)引用listDivider,于是我們繼續(xù)在theme文件中找到listDivider。

<item name="listDivider">@drawable/list_divider_holo_dark</item>

到這,就知道了名為”divider“的屬性最終是引用了一個(gè)drawable來(lái)當(dāng)做分隔線。

name="showDividers"

android:showDividers屬性可以設(shè)置如下4個(gè)值:

  1. none:不顯示分隔線;
  2. beginning:在LinearLayout的開(kāi)始處顯示分隔線;
  3. end:在Linearlayout的結(jié)尾處顯示分隔線;
  4. middle:在LinearLayout中的每?jī)蓚€(gè)組件間顯示分隔線;

所以如果不想按鈕欄帶有分隔線就可以創(chuàng)建自己的按鈕欄樣式并繼承”Holo.Light.ButtonBar.AlertDialog“,然后將這一屬性設(shè)為"none"。

<style name="My_ButtonBar_Style" parent="@android:style/Holo.Light.ButtonBar.AlertDialog">    <item name="android:showDividers">none</item></style>

然后將自定義的樣式加入自定義的alert_dialog主題中,這樣divider就不會(huì)再顯示了。

<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>

Android,AlertDialog,按鈕欄,分隔線

除去divider.png

name="dividerPadding"

這一屬性就是分隔線對(duì)于按鈕欄的padding。例如,如果是垂直的divider,則這一padding就是divider距離按鈕欄上下邊界的距離。

Android,AlertDialog,按鈕欄,分隔線

dividerPadding.png

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南雄市| 峡江县| 岳普湖县| 太仓市| 乐山市| 东源县| 汤原县| 湖口县| 理塘县| 襄汾县| 射阳县| 扶沟县| 蓝田县| 石城县| 灵台县| 襄汾县| 沿河| 轮台县| 竹北市| 香港 | 泰安市| 环江| 镇巴县| 廉江市| 南丰县| 玉门市| 缙云县| 大同县| 龙州县| 乌兰察布市| 高陵县| 辛集市| 北安市| 定南县| 瓦房店市| 湄潭县| 同江市| 沽源县| 阳城县| 梅州市| 昌黎县|