1. 程式人生 > >Android的ToggleButton控制元件隱藏提示文字或清除提示文字佔用空間的解決辦法

Android的ToggleButton控制元件隱藏提示文字或清除提示文字佔用空間的解決辦法

今天測試妹子說有個頁面的一個開關顯示跑偏了,一個Android4.4.4顯示跑偏了,一個Android7.0的手機顯示正常。

圖1:android4.4.4

圖2:android7.0

當時我就不開心了,是何方妖孽在作祟?看了下程式碼,之前是在android7.0的手機上開發的,選用了ToggleButton這個控制元件,但是不需要他的文字提示,所以在程式碼中進行了如下設定:

這裡寫圖片描述

這樣就沒有提示文字了,但是提示文字所佔的空間還在,所以我進行了簡單的計算後,設定了要右邊的負margin,讓控制元件向右偏移了20dp,這樣顯示效果剛剛好:

這裡寫圖片描述

以為萬事大吉了,今天測試找了個Android4.4.4的手機,發現這個頁面的ToggleButton控制元件有一半不見了,如圖一所示,我才發現,原來在api19以下,在沒有設定提示文字的時候,是不會再佔用空間的,但是我有加上-20dp的margin,所以在Android4.4.4的手機上,有20dp的控制元件是跑到螢幕之外的。

本著偷懶的原則,我做了以下處理,解決了這個問題:

這裡寫圖片描述

當api大於19的時候,提示文字會佔位,所以不用理會,在小於等於19的時候,由於不會佔位了,那麼margin也就沒必要了,取消掉佈局檔案的margin設定就好了。哈哈,我真是機智。