Tôi đang cố gắng xác định chiều cao của TextView
trước khi nó được vẽ. Tôi đang sử dụng mã sau để làm điều đó:getMeasuredHeight() của TextView với văn bản được gói
TextView textView = (TextView) findViewById(R.id.textview);
textView.setText("TEST");
int widthSpec = MeasureSpec.makeMeasureSpec(LayoutParams.MATCH_PARENT, MeasureSpec.EXACTLY);
int heightSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
textView.measure(widthSpec, heightSpec);
System.out.println("MeasuredHeight: " + textView.getMeasuredHeight());
Đầu ra là MeasuredHeight: 28
. Không có gì sai với điều đó.
Tuy nhiên, khi tôi cung cấp cho các TextView
một chuỗi văn bản dài, do đó gói xảy ra, nó vẫn mang lại cho chiều cao của một dòng duy nhất thay vì hai:
(...)
textView.setText("TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTEST");
(...)
Đầu ra là MeasuredHeight: 28
, nơi tôi mong chờ MeasuredHeight: 56
.
Tại sao nó không cho tôi giá trị phù hợp và làm cách nào tôi có thể đạt được giá trị phù hợp?
lẽ [này] [1] sẽ giúp bạn, nó gần như cùng một vấn đề! [1]: http://stackoverflow.com/questions/6157652/android-getmeasuredheight-returns-wrong-values – ObAt
Tôi đã thử các giải pháp được đề xuất trong chuỗi đó và trong luồng này (http: // stackoverflow .com/questions/4668939/viewgrouptextview-getmeasuredheight-give-wrong-value-là-nhỏ hơn so với thực), nhưng chúng có cùng kết quả. – nhaarman
Bạn đã sử dụng mã đó ở đâu? – Luksprog