nicover
nicover

Reputation: 2643

EditText loosing cursor focus inside ViewPager2

I have a simple ViewPager2 composed by 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 ");
            }
        });

Inside the TextFragment I have a basic EditText.

Problem :
When I'm clicking it the EditText cursor focus is instantly killed and I can observe this in my logs :

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 callbacks OnPageScrolled & OnPageSelected are called on the EditText click and then remove its focus because for some reason the view pager is "scrolling" according logs.

After fews tests I found that the problem was linked to view pager orientation and transformers :

viewPager.setOrientation(ViewPager2.ORIENTATION_VERTICAL);

When I remove this line, the EditText is not loosing the cursor focus anymore in default orientation which is horizontal.

If I'm adding a custom transformer to the default orientation, I'm loosing focus again.

If someone has encountered the same problem can tell me how to solve it ?

Upvotes: 3

Views: 484

Answers (0)

Related Questions