Android,当我点击编辑文本时如何以编程方式滚动 ScrollView

标签 android android-edittext scrollview ontouchlistener

当我点击 edittext 时,由于键盘的原因,用户看不到我的 button

所以我想,当用户点击 edittext 时,scrollview 绝对流畅地转到上面。

我的第一个问题 我应该为此使用哪个监听器? OnClick, OnFocus , OnTouch 等 ?

我试过这个代码块,但需要双击才能滚动它。第一次单击打开键盘,第二次单击滚动到 scrollview

我的第二个问题有人知道这个问题吗?感谢您的帮助。

 scrollView = (ScrollView) findViewById(R.id.scrollview);
    et_space.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            scrollView.smoothScrollTo(0, 500);
            return false;
        }
    });

最佳答案

谢谢大家的解答,不过我自己解决了问题,

首先我想说你必须使用“OnFocusListener”然后你必须像这样使用Handler;

现在,当我点击我的编辑文本时;键盘打开, ScrollView 同时滚动到顶部:)

et_space.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus){
                final Handler handler;
                handler = new Handler();

                final Runnable r = new Runnable() {
                    public void run() {
                        scrollView.smoothScrollTo(0, 500);

                    }
                };
                handler.postDelayed(r, 200);
            }  
          }
        });

关于Android,当我点击编辑文本时如何以编程方式滚动 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36129605/

相关文章:

android - 试图让 Android 注释 spring RESTful 客户端 api 工作,几个问题

android - 以编程方式设置 ConstraintLayout 宽度以匹配父宽度

java - 分组编辑文本

android - 如何设置Edittext View 只允许两个数值和两个小数,如##.##

android - MonoDroid : Error when calling constructor of custom view - TwoDScrollView

android - 不使用实时绑定(bind)以编程方式构建 TListView

android - 下载并显示html文件

java - EditText - setText() 方法不起作用 - StackOverFlow 异常

android - 在添加 View 之前测量布局?

javascript - React Native - FlatList 无法到达底部