如果textview的hint设置了两行,但是text显示时只有两个字符,那么它的下面就会空出一行。
所以只能自定义textview,代码如下:
public class SmartHintTextView extends android.support.v7.widget.AppCompatTextView {
private CharSequence mSmartHint;
public SmartHintTextView(Context context) {
super(context);
}
public SmartHintTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SmartHintTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setText(CharSequence text, BufferType type) {
super.setText(text, type);
if (TextUtils.isEmpty(text)
&& TextUtils.isEmpty(getHint())
&& !TextUtils.isEmpty(mSmartHint)) {
setHint(mSmartHint);
} else if (!TextUtils.isEmpty(text)
&& !TextUtils.isEmpty(getHint())) {
mSmartHint = getHint();
setHint(null);
}
}
}