hint也可以selector
EditText的hint也可以有disable状态和enable状态
可见module:HintDisable
外部等效点击
想要实现效果,点击外部框,相当于点击EditText,要做的事件是让EditText获取到焦点,并且弹出软键盘
核心代码如下
EditText edit;
View viewOut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText) findViewById(R.id.edit);
viewOut = findViewById(R.id.out);
viewOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit.requestFocus();
showKeyboard();
}
});
}
public void showKeyboard() {
edit.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit, 0);
}
可见module(Edit)
光标一会左一会右
因为光标截图截不下来,我就自己画了下可能的几种情况,都是在编辑框有焦点,但没有输入,显示的是hint信息
那根粗的线表示光标,小矩形表示hint文字,总共三幅图,我们称为图1,2,3
我们设置EditText的gravity为left的时候,默认hint状态下,光标的位置如图1所示。
但是我们设置EditText的gravity为right的时候,默认hint状态下,光标的位置可能是图2也可能是图3,
如果设置了
android:textCursorDrawable="@null"("@null"作用是让光标颜色和textcolor一样)
那结果就是现实为图3,
如果没有设置textCursorDrawable,那就显示为图2
但是我们设置EditText的gravity为right的时候,默认hint状态下,光标的位置可能是图2也可能是图3,
如果设置了
android:textCursorDrawable="@null"("@null"作用是让光标颜色和textcolor一样)
那结果就是现实为图3,
如果没有设置textCursorDrawable,那就显示为图2
而有输入的时候,光标永远在文字右边,至于文字是显示在编辑框的左边还是右边取决于gravityiy
参考module:EditCursorDemo