Android EditText真正的内容高度

时间:2012-12-05 07:42:04

标签: android android-layout android-edittext

我在EditText中有一个Android。它有很长的内容,它滚动到页面 如何找到内容的真实高度,而不仅仅是可见区域?

我试过这个,但它只是给出了可见区域的高度:

EditText editor=(EditText)findViewById(R.id.ed1);
.
.
.
double H=editor.getHeight();

不是H是1150,而不是10000或类似内容的真实高度。

3 个答案:

答案 0 :(得分:3)

这就是我的所作所为:

EditText tv = ...;
if (Build.VERSION.SDK_INT >= 16) {
    totalHeight = Math.round((tv.getLineCount() * (tv.getLineHeight() + tv.getLineSpacingExtra()) *
                    tv.getLineSpacingMultiplier())) + tv.getCompoundPaddingTop() + tv.getCompoundPaddingBottom();
} else {
    totalHeight = tv.getLineCount() * tv.getLineHeight() + tv.getCompoundPaddingTop() + tv.getCompoundPaddingBottom();
}

答案 1 :(得分:0)

您可以按照以下步骤执行此操作

计算编辑文本中的行,从here

获取帮助

之后计算单行的高度(包括顶部填充)然后简单地乘以该数字以获得editText内文本的实际高度

答案 2 :(得分:0)

我只要打{{1​​}}

我刚刚调试了一个我也需要此功能的应用程序:

EditText.getLayout().getHeight();

值是:

        int contentHeight = view.getTextArea().getLayout().getHeight();
        int visibleAreaHeight = view.getTextArea().getHeight();