为了账号安全,请及时绑定邮箱和手机立即绑定

当它获得焦点时选择 EditText 中的所有文本而不滚动到末尾

当它获得焦点时选择 EditText 中的所有文本而不滚动到末尾

翻翻过去那场雪 2023-05-17 15:02:55
我有一个带有一些预装文本的 EditText。创建EditText时,我想选择所有文本和文本开头的定位。但selectAll()总是转移scrollPosition到最后。EditText edt; edt.requestFocus(); edt.selectAll(); edt.scrollTo(0,0); //not scrolling
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

参考这个例子:


activity_main.xml


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity">



    <EditText

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="top"

        android:hint="Enter name"

        android:inputType="textCapSentences|textNoSuggestions|textMultiLine" />


    <EditText

        android:id="@+id/etEmail"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="top"

        android:hint="Description"

        android:inputType="textCapSentences|textNoSuggestions|textMultiLine"

        android:maxLines="6"

        android:minLines="3" />



    <Button

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:onClick="Clickhandle"

        android:text="Click" />

</LinearLayout>

MainActivity.java


public class MainActivity extends AppCompatActivity {

    EditText editText;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        editText=findViewById(R.id.etEmail);

       // editText.setSelectAllOnFocus(true); --> Select all text inside EditText when it gets focus

    }


    public void Clickhandle(View view) {

        editText.requestFocus();

        editText.selectAll();

        editText.post(new Runnable() {

            public void run() {

                editText.scrollTo(0, 0);

            }

        });

    }

}


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信