【问题标题】:How to get the height of edit text dynamically?如何动态获取编辑文本的高度?
【发布时间】:2017-09-18 19:14:19
【问题描述】:

上面有很多编辑文本 ,

我使用 RelativeLayout 动态创建(在 XML 中定义)。第一个编辑文本也是在 XML 中定义的,其他的都是基于这个第一个编辑文本创建的。问题是,正如您所见,最后一个编辑文本正在改变其高度,并且与其他文本不同,但我该如何检查呢?如何获取此编辑文本的高度并将其添加到屏幕的下一行?

【问题讨论】:

标签: java android


【解决方案1】:

你可以试试这个动态获取大小:

getMeasuredHeight() :请在谷歌上搜索更多信息。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    EditText ed = (EditText) findViewById(R.id.edit1);
    ed.setTextSize(20);       
    ed.setText("here stackoverflow");       
    ed.measure(0, 0);
    int height = edit.getMeasuredHeight();

因为这个原因,我经常使用它,仔细阅读,它会帮助你:

视图的大小用宽度和高度表示。一个视图实际上拥有两对宽度和高度值。

第一对称为测量宽度和测量高度。这些尺寸定义了视图在其父视图中的大小(有关详细信息,请参阅布局。)可以通过调用 getMeasuredWidth() 和 getMeasuredHeight() 获得测量的尺寸。

第二对简单地称为宽度和高度,或者有时称为绘图宽度和绘图高度。这些尺寸定义了屏幕上、绘图时和布局后视图的实际大小。这些值可能(但不一定)与测量的宽度和高度不同。宽度和高度可以通过调用getWidth()和getHeight()获得。

【讨论】:

  • onCreate 期间在View 上调用getMeasuredHeight 可能返回零
【解决方案2】:

你可以试试这样的..

EditText editText = (EditText) findViewById(R.id.your_view_id); 
int height = editText.getHeight(); // This will give height
EditText editTextLast = (EditText) findViewById(R.id.your_view_id);
editTextLast.setHeight(height); // this will set the height

【讨论】:

  • 我尝试使用 getHeight 函数,但它返回 0。在 XML 中,我将 wrap_content 设置为第一个编辑文本的宽度和高度
猜你喜欢
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多