Reputation: 2643
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