这绝对是一种痛苦。在我的情况下,我不需要编辑,所以我使用过,TextView
但看到你的EditText
派生TextView
应该能够使用相同的方法。我进行了子类化TextView
并实现onSizeChanged
了调用一个新的监听器,我称之为OnSizeChangedListener
. 在侦听器中,您可以调用getLineCount()
有效结果。
TextView
: _
/** Size change listening TextView. */
public class SizeChangeNotifyingTextView extends TextView {
/** Listener. */
private OnSizeChangeListener m_listener;
/**
* Creates a new Layout-notifying TextView.
* @param context Context.
* @param attrs Attributes.
*/
public SizeChangeNotifyingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* Adds a size change listener.
* @param listener Listener.
*/
public void setOnSizeChangedListener(OnSizeChangeListener listener) {
m_listener = listener;
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
if (m_listener != null) {
m_listener.onSizeChanged(w, h, oldw, oldh);
}
}
}