通常,单击视图时,文本光标将设置在您单击的位置附近.
我尝试将它始终设置到最后(超过最后一个字符),但除非操作被延迟,否则它什么都不做.
下列:
new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
EditText et = (EditText) v;
et.setSelection(et.getText().length());
}
}
});
Run Code Online (Sandbox Code Playgroud)
不起作用.延迟setSelection部分:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
et.setSelection(et.getText().length());
}
}, 40);
Run Code Online (Sandbox Code Playgroud)
使它工作,但是不好的做法.
还有哪些更好的选择?OnClickListener和OnTouchListener(ACTION_DOWN和ACTION_UP两者)也没有帮助.
没有必要拖延.我们需要等待setSelection或者自动调用完成并执行我的setSelection.
new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
final EditText et = (EditText) v;
et.post(new Runnable() {
@Override
public void run() {
et.setSelection(et.getText().length());
}
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |