【问题标题】:GXT3 - TextField height. How to make a TextFields height bigger?GXT3 - 文本字段高度。如何使 TextFields 的高度更大?
【发布时间】:2015-02-06 03:50:30
【问题描述】:

GXT 3.0.1 GWT 2.5.1

我正在尝试使文本字段的高度与其旁边的按钮相同,但它不起作用。我已经尝试过 TextFields 自己的 set 函数、cointaner Layout 函数等等。似乎没有什么像怀疑的那样有效。

VerticalLayoutContainer layout = new VerticalLayoutContainer();
HBoxLayoutContainer searchContainer = new HBoxLayoutContainer();
searchContainer.setPadding(new Padding(5));
searchContainer.setPack(BoxLayoutPack.CENTER);
BoxLayoutData boxLayout = new BoxLayoutData(new Margins(0, 5, 5, 0));
searchText = new TextField();
searchButton = new TextButton("Search");
searchContainer.add(searchText, boxLayout);
searchContainer.add(searchButton, boxLayout);
searchContainer.setBorders(true);
layout.add(searchContainer);

sn-p 不代表我到目前为止所尝试的。 sn-p 显示了我在什么上下文中使用 TextField 和 Button(容器)。我错过了什么?或者甚至可以在像素等固定值上调整高度?我对 GXT 很陌生。

非常感谢。

【问题讨论】:

    标签: java gwt height textfield gxt


    【解决方案1】:

    我自己找到了一个无 CSS 的解决方案。但感谢 geert3 建议查看 html 本身以确定必须调整哪些组件才能显示正确的高度。最后必须修改“输入”字段。为此,我编写了一个小类,它扩展了 Textfield 本身并提供了一种调整输入字段高度的方法。几乎 TextFields 输入字段的每个属性都可以通过这种方式进行修改。这是解决方案:

    public class SearchTextField extends TextField {    
    
            public SearchTextField(){
                super();
            }
    
            public void setInputHeight(int heightValue) {
                getInputEl().getStyle().setHeight(20, Unit.PX);
            }
    
            public String getInputHeight() {
                return getInputEl().getStyle().getHeight();
            }
        }
    

    或者你可以在一行代码中产生同样的效果。在与问题一起发布的上下文中,解决方案是:

    searchText.getCell().getInputElement(searchText.getElement()).getStyle().setHeight(20, Unit.PX);
    

    【讨论】:

      【解决方案2】:

      试试这个:

      searchText.getElement().getStyle().setLineHeight(20, Unit.PX);
      

      如果您想经常这样做(即对于许多组件),您应该考虑使用 CSS 来设置文本字段的样式。这涉及:

      1. 向文本字段添加样式名称

        searchText.addStyleName("mytextfield");

      2. 在您的 CSS 中,定义 mytextfield 类的样式:

        .mytextfield { line-height: 20px }

      【讨论】:

      • 您好,感谢您的快速回复。你试过这个解决方案吗?我已将代码插入到一个空白的新项目中,没有任何布局并且高度保持不变。我也在我的 sn-p 这样的上下文中尝试过,结果相同。
      • 不,这没有经过测试,但是是的,该原则应该适用于我现在拥有的有限信息。要找出这不起作用的原因,我建议您使用浏览器的“开发模式”(在 chrome 和 IE 中按 F12,或在 Firefox 中使用 Firebug 之类的插件)这将允许您检查您的本地 HTML 文本字段DOM 并见证行高在 DOM 中有效设置。然后您可以使用 CSS,和/或找出可能覆盖您期望的高度的内容。
      • 我认为必须有一个没有 CSS 样式的解决方案(我肯定会尝试使用 CSS)。也许在另一种情况下,各种 setHeight 方法都有效,而我只是还没有找到它们。希望有人知道答案,这件小事真的很困扰我。
      猜你喜欢
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多