This is definitely a pain. In my case, I did not need to edit, so I worked with TextView , but seeing that EditText comes from TextView , you should use the same approach. I subclassed TextView and implemented onSizeChanged to call a new listener, which I called OnSizeChangedListener . In the listener, you can call getLineCount() with valid results.
TextView :
public class SizeChangeNotifyingTextView extends TextView { private OnSizeChangeListener m_listener; public SizeChangeNotifyingTextView(Context context, AttributeSet attrs) { super(context, attrs); } 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); } } }
kabuko
source share