91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-21 05:32:16 來源:腳本之家 閱讀:221 作者:Mmuz_4078 欄目:移動開發

在網上學習了一種繼承系統AlertDialog然后用一統一方法控制dialog顯示的方法,效果還不錯,但按鈕欄那里的分隔線并不是想要的。于是去查看sdk中的AlertDialog的xml文件中的布局,發現其中并沒有這一分隔線的影子,所以判斷應該是在style中進行設置的。

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>

在其中找到有關按鈕欄的樣式:“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個值:

  1. none:不顯示分隔線;
  2. beginning:在LinearLayout的開始處顯示分隔線;
  3. end:在Linearlayout的結尾處顯示分隔線;
  4. middle:在LinearLayout中的每兩個組件間顯示分隔線;

所以如果不想按鈕欄帶有分隔線就可以創建自己的按鈕欄樣式并繼承”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>

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

除去divider.png

name="dividerPadding"

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

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

dividerPadding.png

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

全椒县| 上林县| 塔城市| 茌平县| 界首市| 天峨县| 讷河市| 营山县| 雷州市| 灵武市| 水富县| 开鲁县| 湖南省| 鲜城| 红安县| 永平县| 龙海市| 泸溪县| 攀枝花市| 稷山县| 博野县| 岫岩| 元阳县| 民乐县| 合作市| 永顺县| 南汇区| 沧源| 陇西县| 恩平市| 建德市| 温泉县| 古丈县| 昌吉市| 宣恩县| 股票| 张家界市| 海安县| 衡南县| 星座| 红桥区|