TextView ShadowLayer обрезается при использовании WRAP_CONTENT - PullRequest
0 голосов
/ 03 января 2019

Прошло много времени с тех пор, как я писал сообщения, и я прочитал много сообщений, чтобы попытаться решить мою проблему, но я просто не могу понять это. Я что-то упустил, и я надеюсь, что кто-то может помочь мне понять, что я делаю неправильно.

В этом примере у меня есть TextView внутри линейного макета с LayoutParams, установленным в MATCH_PARENT. Если я использую WRAP_CONTENT с TextView, тень обрезается, даже если я использую Padding. Если я установлю для TextView значение MATCH_PARENT, тень не будет обрезана.

TextView WRAP_CONTENT Нет отступов: TextView WRAP_CONTENT No Padding

TextView WRAP_CONTENT с отступом Textview WRAP_CONTENT with Padding

TextView MATCH_PARENT: TextView MATCH_PARENT

Я даже пробовал это с ll.setClipToPadding (ложь); ll.setClipChildren (ложь);

Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Это, вероятно, действительно плохая практика, но я пошел со следующим:

tv.setHeight(tv.getHeight() + tv.getPaddingTop() + tv.getPaddingBottom());
tv.setWidth(tv.getWidth() + tv.getPaddingLeft() + tv.getPaddingRight());
tv.setPadding(0, 0, 0, 0);

Результат: Result

Еще раз спасибо Бен за помощь!

0 голосов
/ 03 января 2019

Я не думаю, что вы ничего не упустили, к сожалению. Это похоже на ошибку в том, как TextView измеряет курсив. Это проблема даже без теней.

enter image description here

Вам придется создать подкласс TextView (или AppCompatTextView) и определить пользовательское поведение измерения, чтобы обойти это.

Если вы не хотите беспокоиться об этом, единодушным «лучшим» ответом является добавление неразрывного пробела в конец вашего текста, чтобы увеличить измеренный размер текста. К сожалению, это часто добавляет больше места, чем вы действительно хотите.

enter image description here

Кстати, android:clipToPadding - это только атрибут на ViewGroup, поэтому он ничего не делает, когда вы применяете его к TextView (он просто игнорируется, как и любой другой неизвестный атрибут).

...