簡體   English   中英

Android自定義開關被剪裁/切斷

[英]Android custom Switch gets clipped/cut off

我有一個自定義的android開關,它定義如下

<Switch
    android:id="@+id/create_site_switch_ssl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|left"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:paddingLeft="50dp"
    android:paddingRight="50dp"
    android:checked="true"
    android:gravity="center_vertical"
    android:thumb="@drawable/btn_gradient" />

以及像這樣的拇指選擇器項目

<item android:state_enabled="true" android:state_focused="false" android:state_pressed="false">
    <shape android:shape="rectangle">    
        <gradient
            android:startColor="@color/Blue100"
            android:endColor="@color/Blue50"
            android:angle="90"/>    
        <padding android:left="@dimen/button_padding"
            android:top="@dimen/button_padding"
            android:right="@dimen/button_padding"
            android:bottom="@dimen/button_padding" />    
        <corners android:radius="@dimen/button_corner"/>    
        <stroke android:color="@color/BlueBorder" android:width="5dp"/>    
    </shape> 
</item>

在Android版本4.3,4.4.2開關滑塊在左右兩側被切割成這樣。

在此輸入圖像描述

我試着玩形狀和開關的填充/邊距/尺寸到目前為止沒有任何效果。

同時使用適當的填充設置自定義軌道也不起作用。

在Android 5.0及更高版本上,問題已通過設置解決

android:paddingLeft 
android:paddingRight

為什么填充不適用於更高版本? 我錯過了什么? 歡迎任何解決方案的提示!

我遇到過同樣的問題。 從drawable中刪除padding屬性為我修復了它。 在你的情況下,它看起來像這樣:

<item android:state_enabled="true" android:state_focused="false" android:state_pressed="false">
    <shape android:shape="rectangle">    
        <gradient
            android:startColor="@color/Blue100"
            android:endColor="@color/Blue50"
            android:angle="90"/>    
        <corners android:radius="@dimen/button_corner"/>    
        <stroke android:color="@color/BlueBorder" android:width="5dp"/>    
    </shape> 
</item>

然后,您可以將填充添加到交換機:

<Switch
    android:id="@+id/create_site_switch_ssl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|left"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:paddingLeft="50dp"
    android:paddingRight="50dp"
    android:checked="true"
    android:drawablePadding="@dimen/button_padding"
    android:gravity="center_vertical"
    android:thumb="@drawable/btn_gradient" />

我知道這已經晚了,但這適用於其他有同樣問題的人。 對我來說,解決方案是設置負填充。 因此,如果您的開關在右側被切斷,則將右側填充設置為負數,例如-5或-10,具體取決於切換的切換器的數量。

暫無
暫無

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

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