EditText优化
光标设置
如果EditText设置的高度比较大,光标默认会显示在居中的坐标,需要设置android:gravity=”top”。
如果光标太贴近边框,只需设置android:paddingLeft即可。多行输入
在多行输入后光标会水平往右滚动,为了保持换行输入的习惯,还要设置
android:inputType="textMultiLine" android:singleLine="false" android:scrollHorizontally="false"
为了直观显示,可以设置
android:scrollbars="vertical" android:scrollbarStyle="insideInset"
但输入框满了后,如果继续输入,EditText会不断增加高度,这样会隐藏上面的控件,最好设置 android:minLines和 android:maxLines确认最大最小行数。
软键盘遮挡
可以在AndroidManifext.xml中设置Activity的软键盘:android:windowSoftInputMode="adjustPan"
最后为了软键盘不挡住下方控件,最好还是全部添加一个scrollView。
为了防止ScorllView和EditText(TextView)的滚动相冲突:
除了在xml中设置editText:android:scrollbars="vertical"
还需要在代码中设置:
textViewExtras.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { textViewExtras.getParent().requestDisallowInterceptTouchEvent(true); return false; } }); textViewExtras.setMovementMethod(ScrollingMovementMethod.getInstance());
- 中划线 : textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG );
- 底部横线: textview.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG )
设置
android:imeOptions
属性时,有可能会失效.只需要再设置android:singleLine
为true或者设置android:inputType
为text,就可以修复~设置
setOnEditorActionListener()
在键盘控制模拟器时会失效(检测不到回车键), 所以还是建议使用setOnKeyListener()
.
- EditText支持长按复制,TextView也可以通过
android:textIsSelectable="true"
来设置.