Для тех, кто читает это сейчас, принятый ответ приведет к некоторым проблемам с макетом на новых API, вызывающим слишком большое заполнение.
В API <= 16 вы можете установить <code>paddingLeft для переключателя, чтобы установить отступ относительно границ представления переключателя. Кроме того, фон патча 9 также меняет границы вида относительно вида.
При API> = 17 paddingLeft
(или paddingStart
) относится к переключаемой кнопке. То же относится и к пятому патчу. Чтобы лучше проиллюстрировать различия между отступами, смотрите прикрепленный скриншот.
Если вы покопаетесь в коде, вы найдете в API 17 новый метод, который называется getHorizontOffsetForDrawables . Этот метод вызывается при расчете левого отступа для переключателя (отсюда и дополнительное пространство, показанное на рисунке).
TL; DR Просто используйте paddingLeft
, если ваш minSdkVersion
равен> = 17. Если вы поддерживаете API <= 16, у вас должен быть стиль переключателя для поддерживаемого min SDK и другой стиль для API 17+. </p>
![combine screenshots showing left padding differences between API versions](https://i.stack.imgur.com/l9nev.png)