Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT-标签未正确包装文本?_Java_Gwt_Word Wrap - Fatal编程技术网

Java GWT-标签未正确包装文本?

Java GWT-标签未正确包装文本?,java,gwt,word-wrap,Java,Gwt,Word Wrap,我在FlexTable的单元格中有标签,它位于ScrollPanel的内部,ScrollPanel位于LayoutPanels的内部。ScrollPanel(及其父LayoutPanels)的大小是根据用户设备窗口的大小动态设置的(因此不使用精确的CSS大小)。FlexTable、其单元格和标签的宽度设置为100%。此外,FlexTable设置为具有固定的表格布局。标签的换行设置为break word。在大多数情况下,这很好。带有短单词的句子会毫无问题地包装到下一行,标签的大小与包含表格单元格的

我在FlexTable的单元格中有标签,它位于ScrollPanel的内部,ScrollPanel位于LayoutPanels的内部。ScrollPanel(及其父LayoutPanels)的大小是根据用户设备窗口的大小动态设置的(因此不使用精确的CSS大小)。FlexTable、其单元格和标签的宽度设置为
100%
。此外,FlexTable设置为具有固定的表格布局。标签的换行设置为
break word
。在大多数情况下,这很好。带有短单词的句子会毫无问题地包装到下一行,标签的大小与包含表格单元格的大小相同。但是,当一个单词需要分成两行才能匹配时(这种情况经常发生,因为页面的链接经常放在这里),标签的宽度会自动扩展到包含它的单元格的大小之外。我知道这是GWT自行调整标签大小的结果,但我不确定如何防止这种情况。我曾尝试将单词break设置为
break all
,但这会导致到达行尾的短单词被打断(如“this”变成“th”和“is”),这太愚蠢了。我是否可以强制GWT标签仅为其包含单元格宽度的100%,并且在保持此设置动态的情况下不让其超出该宽度?多谢各位

事实上,我认为没有好的解决办法;要么只允许在正常点(空白)处断开,要么可以在单词内部断开,但没有办法防止仅使用CSS断开短单词

我能给出的最好的建议,因为链接会引起问题,就是以某种方式缩短链接,可能只显示有限数量的字符;如果链接是可点击的,这应该不是一个大问题


或者,您可以为标签或单元格设置一个固定的大小(仍然可以是%),并使用
overflow-x
隐藏任何文本位,如果有一个很长的单词不能被打断。

显然是百分比造成了问题。如果为宽度指定px值,则长字符串达到限制后将自动换行。当然,因为我在动态调整大小,所以我需要以更复杂的方式获得这个px值。方法是使用
Window.getClientWidth()
获取用户屏幕的宽度,然后每次使用百分比时,都需要根据CSS中使用的百分比手动计算px值(由于获得100像素中的33%会得到33像素,因此需要手动检查何时应添加额外的像素,以便不丢失任何像素),然后对于滚动面板,可以通过减去
NativeVerticalScrollbar.getNativeScrollbarWidth()获得不包括滚动条的面板宽度
根据您当前的面板宽度。这种方法对我很有效,因为我已经在根据向下滚动面板的窗口大小计算每个面板的像素大小了。

这可能会有帮助:@DavidLevesque:下次当项目在我面前时,我会尝试预包装,但我感觉它不起作用。因为标签是act通常,改变标签的大小以适应文本,我认为改变包装方式不会有什么帮助,因为标签的大小只是它需要不包装的大小。我猜我只需要找到一种方法来强制标签的大小不扩大。不过谢谢你的建议。再次,我还是会尝试一下。@DavidLevesque:我给出了预包装-尝试包装,但没有成功。它仍然像以前一样扩展标签。不过感谢您的建议。感谢您的建议。标签和单元格的大小已设置为固定值(100%)大小。你可能认为这意味着它们永远不会超过宽度,但标签的大小仍然会比它们父母的100%空间大。我想我可以在单元格上使用
overflow-x
,但这不是我最喜欢的解决方案。当然,一定有办法防止标签以这种方式调整大小,ev恩,如果它意味着一个自定义标签类。这也不是我最喜欢的方法,但如果我找不到其他方法,它应该可以工作。问题是,暂时完全忽略GWT,理论上你希望如何解决这个问题?比如,如果你有长链接,你希望发生什么?你想,比如说,只想,超过一定长度的单词吗h是否要断开?如果一个单词不能放在当前行的剩余空间中,我希望将其移动到下一行,然后如果它超过了整行的宽度,则应将该单词断开为两行。我发布的答案实现了这一点。不过,感谢您的建议!啊,有意义!如果您是我们,这是一个改进的解决方案通过使用
CssResource
,您可以使用
@eval
在CSS中进行这些计算,而不必在代码中进行这些计算!@Marconius:我目前没有使用它,但这听起来确实很有用,我一定会研究它的。谢谢!(您应该对这些信息的答案竖起大拇指)