EditText失去ViewPager2内部的光标焦点

时间:2020-10-27 15:41:05

标签: android android-edittext android-viewpager focus orientation

我有一个简单的ViewPager2由2 Fragment

组成
        fragmentsList.add(new FakeFragment());
        fragmentsList.add(new TextFragment());

        viewPagerAdapter = new ViewPagerAdapter(this, fragmentsList);
        viewPager.setAdapter(viewPagerAdapter);
        viewPager.setOrientation(ViewPager2.ORIENTATION_VERTICAL);
        
        viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageScrollStateChanged(int state) {
                super.onPageScrollStateChanged(state);
                Log.d(TAG, "onPageScrollStateChanged: onPageScrollState ");
            }
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels);
                Log.d(TAG, "onPageScrolled: onPageScrolled ");
            }

            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                Log.d(TAG, "onPageSelected: onPageSelected ");
            }
        });

在TextFragment中,我有一个基本的EditText

问题:
单击它时,EditText光标焦点立即被杀死,我可以在日志中观察到这一点:

2020-10-27 16:34:31.202 23177-23177/com.example.mytestapp D/MainActivity: onPageScrolled: onPageScrolled 
2020-10-27 16:34:31.217 23177-23177/com.example.mytestapp D/MainActivity: onPageScrolled: onPageScrolled 

ViewPager2回调OnPageScrolledOnPageSelected在EditText单击时被调用,然后取消其焦点,因为某种原因,视图分页器正在根据日志“滚动”。

经过几次测试后,我发现问题与查看寻呼机方向和转换器有关:

viewPager.setOrientation(ViewPager2.ORIENTATION_VERTICAL);

当我删除此行时,EditText不再以默认的水平方向失去光标焦点​​。

如果我将自定义转换器添加到默认方向,则表示再次失去焦点。

如果有人遇到相同的问题,可以告诉我如何解决?

0 个答案:

没有答案