There is a ViewPager with three fragments, when changing fragments, you need to change the ImageView in the Activity . How to do it? How to tell the Activity what fragment is on the screen now.

ViewPagerAdapter code:

 class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } 

Adding fragments to the Adapter:

  private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new CallFragment(), String.valueOf(getText(R.string.main_activity_tab_call))); adapter.addFragment(new ChatFragment(), String.valueOf(getText(R.string.main_activity_tab_chat))); adapter.addFragment(new ContactFragment(), String.valueOf(getText(R.string.main_activity_tab_contact))); viewPager.setAdapter(adapter); } 
  • Hi, are you using the tab? I pralno when scrolling should there be a transition from one fragment to another in sight? - elik
  • @elik I use TabLayout, when scrolling a transition from one fragment to another - Lucky_girl
  • I understand everything. Take an example from below. He took up his project from his project - elik

2 answers 2

 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //тут вставляете картинку в imageView } @Override public void onPageScrollStateChanged(int state) { } }); 

Addition :

For TabLayout you can use this.

 tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { //тут вставляете картинку в imageView } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); 

    Here is the adapter

      private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new OneFragment(), "ƏSAS"); adapter.addFragment(new TwoFragment(), "VIRTUAL TUR"); adapter.addFragment(new ThreeFragment(), "ÜNVANIMIZ"); viewPager.setAdapter(adapter); Вот класик 

      class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } 

    Do not forget to announce

      CustomViewPager viewPager = (CustomViewPager ) findViewById(R.id.viewpager); viewPager.setPagingEnabled(false); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); setupTabIcons();