GXT3 - TextField高度。如何使TextFields高度更大?

时间:2014-12-08 13:15:05

标签: java gwt height textfield gxt

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);

该代码段并不代表我迄今为止所尝试过的内容。该片段显示了我使用TextField和Button(容器)的上下文。我错过了什么?或者甚至可以像像素一样在固定值上调整高度?我对GXT很陌生。

非常感谢。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

试试这个:

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

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

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

    searchText.addStyleName("mytextfield");

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

    .mytextfield { line-height: 20px }