我们使用Eclipse RAP开发了具有一些视图的Web应用程序。在最后一次FF更新到版本63之后,包含树小部件的左视图内容显示不正确。内容超出了视图。内容没有滚动,而是显示在视图外部。水平滚动条不执行任何操作。看起来CSS溢出属性有些混乱。
其他浏览器正确显示内容。
有人知道这个错误吗?
编辑:
如何复制它:
1)创建任何有效的最小Eclipse RAP示例,例如使用EntryPoint。 我们正在使用Eclipse Luna Service Release 1(4.4.1)和RAP target 2.3。 我想任何较新版本的Eclipse或RAP也会复制它。
2)创建一些小部件。该错误出现在org.eclipse.swt.widgets.Label和org.eclipse.swt.widgets.Tree中,也许也存在于其他树中。例如,org.eclipse.swt.widgets.Text很好。
package raptest;
import org.eclipse.rap.rwt.application.AbstractEntryPoint;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
public class BasicEntryPoint extends AbstractEntryPoint {
@Override
protected void createContents(Composite parent) {
parent.setLayout(new GridLayout());
Label label = new Label(parent, SWT.BORDER);
label.setLayoutData(new GridData(200, SWT.DEFAULT));
label.setText("This is a very looooooooooooooooong text");
Tree tree = new Tree(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
tree.setLayoutData(new GridData(200, 200));
TreeItem treeItem;
String txt = "Very loooooooooooooooong item ";
for (int i = 0; i < 10; i++) {
treeItem = new TreeItem (tree, SWT.NONE);
treeItem.setText (txt + i);
}
Text text;
text = new Text(parent, SWT.BORDER);
text.setLayoutData(new GridData(200, SWT.DEFAULT));
text.setText("This is a very looooooooooooooooong text");
text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
text.setLayoutData(new GridData(200, 200));
text.setText("This is a very looooooooooooooooong text");
}
}
3)在浏览器中启动RAP应用程序
也许此问题已在下一个Firefox版本中解决。
最佳,茱莉亚
答案 0 :(得分:2)
较旧版本的RAP使用-moz-scrollbars-horizontal
和-moz-scrollbars-vertical
。 moz-scrollbars
现在已弃用。从FF 63开始,您必须在about:config中启用支持(请参见https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#Deprecated)
答案 1 :(得分:0)
错误的溢出行为的原因如下:
我使用浏览器的检查工具查看了Eclipse为问题中给出的示例生成的html元素。
对于标签窗口小部件,它生成了两个div元素:一个用于边框,另一个在文本内。
在铬中,它们都具有css溢出隐藏属性。
在firefox中,只有内部div具有此属性,而在外部div中则缺少此属性。如果我将overflow隐藏属性添加到外部div元素,则Label将正确显示。
我仍然不清楚为什么不同浏览器生成的元素不同。我开始相信,问题出在我们使用的相当老的Eclipse和RAP版本中,它们在某种程度上不再与Firefox兼容。
最佳,茱莉亚
编辑:
使用Eclipse Photon和RAP 3.5,一切都可以正确显示。