티스토리 뷰

Error

 

constructor fragmentstatepageradapter(fragmentmanager)' is deprecated. deprecated in java

 

ViewPager 를 FragmentPager 로 이용할 때 아래와 같은 경고 문구를 만날 수 있다.

 

 

Why

 

생성자를 타고 들어가면 아래처럼 Deprecated 되었으니 FragmentPagerAdapter(FragmentManager, Int) 생성자를 이용하라고 나옴.

    /**
     * Constructor for {@link FragmentPagerAdapter} that sets the fragment manager for the adapter.
     * This is the equivalent of calling {@link #FragmentPagerAdapter(FragmentManager, int)} and
     * passing in {@link #BEHAVIOR_SET_USER_VISIBLE_HINT}.
     *
     * <p>Fragments will have {@link Fragment#setUserVisibleHint(boolean)} called whenever the
     * current Fragment changes.</p>
     *
     * @param fm fragment manager that will interact with this adapter
     * @deprecated use {@link #FragmentPagerAdapter(FragmentManager, int)} with
     * {@link #BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT}
     */
    @Deprecated
    public FragmentPagerAdapter(@NonNull FragmentManager fm) {
        this(fm, BEHAVIOR_SET_USER_VISIBLE_HINT);
    }

 

생성자를 조금만 자세히 보면, 

기본으로 FramgnetManager 를 인자로 받고, BEHAVIOR_SET_USER_VISIBLE_HINT 를 두번째 인자로 넘기는 생성자를 하드코딩하여 다시 호출하는걸 볼 수 있다.

 

BEHAVIOR_SET_USER_VISIBLE_HINT 를 보자.

 

 

Deprecated 되었다.

 

이제 BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT 를 이용해야 한다.

자세한 링크는 아래

https://developer.android.com/reference/androidx/fragment/app/FragmentStatePagerAdapter.html#BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT

 

FragmentStatePagerAdapter  |  Android Developers

FragmentStatePagerAdapter public abstract class FragmentStatePagerAdapter extends PagerAdapter java.lang.Object    ↳ androidx.viewpager.widget.PagerAdapter      ↳ androidx.fragment.app.FragmentStatePagerAdapter Implementation of PagerAdapter that uses a Fr

developer.android.com

 

SOLVED

 

문제가 되었던 코드를 아래와 같이 수정하면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함