簡體   English   中英

Android自定義按鈕在按下時不必要的黑色邊框閃爍

[英]Android custom button unwanted flickering black border when pressed

我遇到了一個奇怪的問題,我在網上找不到任何東西。 我創建了一個具有默認布局列表的自定義選擇器,並在按下時切換到另一個選擇器。 看起來像這樣(button.xml):

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- pressed -->
        <item android:drawable="@drawable/fbutton_pressed" android:state_pressed="true"/>
        <!-- default -->
        <item android:drawable="@drawable/fbutton_unfocused"/>
    </selector>

這些是布局列表的外觀,例如http://pastebin.com/ezZB8a8U

這是一個示例按鈕

<Button
   android:layout_width="40dp"
   android:layout_height="40dp"
   android:background="@drawable/button" />

現在的問題是,按下按鈕會創建一個隨機的黑色邊框,以填充其寬度和高度(按住按鈕會導致邊框閃爍)。 這在我的Samsung Galaxy Tab A上沒有發生,但在我的Sony Xperia Z3 +上卻發生了。 這是隨機發生的,但是當它發生時,它似乎一直在發生,直到我重新啟動該活動,以便它每次按下還是根本不發生,這取決於該活動是否為“ bug(?)”。

希望您能理解我的問題,英語不是我的母語。 順便說一句,我沒有以編程方式對按鈕執行任何操作。

謝謝!

更新:我的一個朋友在手機上嘗試了該應用程序,該手機是較舊的htc,他得到了同樣閃爍的邊框。 還嘗試了三星銀河s5,並在該設備上不會發生。 尚未解決。

在您的button.xml上嘗試以下代碼:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- pressed -->
<item android:state_pressed="true"/>
    <layer-list>
        <item
           android:bottom="2dp"
           android:left="2dp"
           android:right="2dp"
           android:top="2dp">
            <shape android:shape="rectangle" >
                <stroke
                   android:width="1dp"
                   android:color="#BFBFBF" />

                <gradient
                   android:angle="90"
                   android:centerColor="#e5f0ff"
                   android:endColor="#b3d3ff"
                   android:startColor="#99c4ff" />

                <padding
                   android:bottom="5dp"
                   android:left="5dp"
                   android:right="5dp"
                   android:top="5dp" />
            </shape>
        </item>
    </layer-list>
</item>

<!-- unpressed -->
<item android:state_enabled="true">
    <layer-list>
        <item
           android:bottom="2dp"
           android:left="2dp"
           android:right="2dp"
           android:top="2dp">
            <shape android:shape="rectangle" >
                <stroke
                   android:width="1dp"
                   android:color="#BFBFBF" />

                <gradient
                   android:angle="90"
                   android:centerColor="#F4F4F4"
                   android:endColor="#E5E5E5"
                   android:startColor="#d3d3d3" />

                <padding
                   android:bottom="5dp"
                   android:left="5dp"
                   android:right="5dp"
                   android:top="5dp" />
            </shape>
        </item>
    </layer-list>
</item>

</selector>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM