使用 WRAP_CONTENT 时 TextView ShadowLayer 被剪裁
TextView ShadowLayer being Clipped when Using WRAP_CONTENT
我已经有一段时间没有发帖了,我已经阅读了很多帖子来尝试解决我的问题,但我似乎无法弄清楚。
我遗漏了一些东西,我希望有人能帮助我理解我做错了什么。
在此示例中,我在线性布局中有一个 TextView,其中 LayoutParams 设置为 MATCH_PARENT。
如果我将 WRAP_CONTENT 与 TextView 一起使用,则阴影会被剪裁,即使我使用 Padding 也是如此。
如果我将 TextView 设置为 MATCH_PARENT 则不会剪裁阴影。
TextView WRAP_CONTENT 无填充:
带内边距的 TextView WRAP_CONTENT
文本视图MATCH_PARENT:
我什至尝试过
ll.setClipToPadding(假);
ll.setClipChildren(假);
我错过了什么?
不幸的是,我认为您没有遗漏任何东西。这似乎是 TextView 如何测量斜体文本的错误。即使没有阴影也是个问题。
您必须子类化 TextView
(或 AppCompatTextView)并定义自定义测量行为来解决此问题。
如果您不想为此烦恼,一致的 "best" 答案是在您的文本末尾添加一个不间断的 space 以增加测量的大小文本。不幸的是,这通常比您真正想要的 space 多。
顺便说一句,android:clipToPadding
只是 ViewGroup
上的一个属性,这就是为什么当您将它应用到 TextView
时它不会做任何事情(它只是被忽略,例如任何其他未知属性)。
这可能是非常糟糕的做法,但我采用了以下方法:
tv.setHeight(tv.getHeight() + tv.getPaddingTop() + tv.getPaddingBottom());
tv.setWidth(tv.getWidth() + tv.getPaddingLeft() + tv.getPaddingRight());
tv.setPadding(0, 0, 0, 0);
结果:
再次感谢本对我的帮助!
我已经有一段时间没有发帖了,我已经阅读了很多帖子来尝试解决我的问题,但我似乎无法弄清楚。 我遗漏了一些东西,我希望有人能帮助我理解我做错了什么。
在此示例中,我在线性布局中有一个 TextView,其中 LayoutParams 设置为 MATCH_PARENT。 如果我将 WRAP_CONTENT 与 TextView 一起使用,则阴影会被剪裁,即使我使用 Padding 也是如此。 如果我将 TextView 设置为 MATCH_PARENT 则不会剪裁阴影。
TextView WRAP_CONTENT 无填充:
带内边距的 TextView WRAP_CONTENT
文本视图MATCH_PARENT:
我什至尝试过 ll.setClipToPadding(假); ll.setClipChildren(假);
我错过了什么?
不幸的是,我认为您没有遗漏任何东西。这似乎是 TextView 如何测量斜体文本的错误。即使没有阴影也是个问题。
您必须子类化 TextView
(或 AppCompatTextView)并定义自定义测量行为来解决此问题。
如果您不想为此烦恼,一致的 "best" 答案是在您的文本末尾添加一个不间断的 space 以增加测量的大小文本。不幸的是,这通常比您真正想要的 space 多。
顺便说一句,android:clipToPadding
只是 ViewGroup
上的一个属性,这就是为什么当您将它应用到 TextView
时它不会做任何事情(它只是被忽略,例如任何其他未知属性)。
这可能是非常糟糕的做法,但我采用了以下方法:
tv.setHeight(tv.getHeight() + tv.getPaddingTop() + tv.getPaddingBottom());
tv.setWidth(tv.getWidth() + tv.getPaddingLeft() + tv.getPaddingRight());
tv.setPadding(0, 0, 0, 0);
结果:
再次感谢本对我的帮助!