행복한 하루
플래그먼트 갱신,새로고침 하는 방법 (fragment refresh) 본문
안녕하세요.
안드로이드에서 플래그먼트 갱신하는 방법을 공유해보고자 합니다.
별것 아닐 수 있는데, 사이트에서 여러 사이트에 알려주는 방법들을 사용해보니 작동하지 않아서
저와 같은 방법으로 할 경우 될 수도 있지 않을까 해서 공유합니다.
우선 구글에 플래그먼트 새로고침이라고 검색하면 답변들이 주로 아래와 같은 코드로 알려주었습니다.
방법 1)
방법 2)
// Reload current fragment Fragment frg = null;
frg = getSupportFragmentManager().findFragmentByTag("Your_Fragment_TAG");
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();
stackoverflow.com/questions/20702333/refresh-fragment-at-reload
쉽게 생각해서 트랜잭션 만들고 원하는 플래그먼트 this 대신에 넣으면 갱신되는 것 아닌가 했는데,
... mFragment NULL point 에러라고 발생하더라고요.
그래서 이래저래 작동된 방법입니다.
//MainActivity 안에 플래그먼트 관리하는 클래스 만들어줍니다.
...
class MyPagerAdapter extends FragmentStatePagerAdapter {
ArrayList<Fragment> items = new ArrayList<Fragment>();
private final List<String> mFragmentTitleList = new ArrayList<>();
private FragmentManager mFM;
public MyPagerAdapter(FragmentManager fm) {
super(fm);
mFM = fm;
}
public void addItem(Fragment item, String title) {
items.add(item);
mFragmentTitleList.add(title);
}
@Override
public Fragment getItem(int position) {
return items.get(position);
}
@Override
public int getCount() {
return items.size();
}
@Override
public CharSequence getPageTitle(int position) {return mFragmentTitleList.get(position);}
public FragmentManager getFM() {
return mFM;
}
}
...
pager = findViewById(R.id.container);
pager.setOffscreenPageLimit(5);
adapter = new MyPagerAdapter(getSupportFragmentManager());
Fragment1 fragment1 = new Fragment1();
adapter.addItem(fragment1, "Fragment 1");
...
pager.setAdapter(adapter);
TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
tabs.setupWithViewPager(pager);
...
//Fragment refresh
FragmentTransaction ft = adapter.getFM().beginTransaction();
ft.detach(adapter.getItem(0)).attach(adapter.getItem(0)).commit();
...
플래그먼트 관리 클래스 내에서 불러서 사용한 경우 새로고침이 되었습니다.
새로고침을 한 곳은 MainActivity에서 설정 Activity를 호출하였고, 설정이 완료를 누르면 Fragment1 갱신되도록
MainActivity의 onActivityResult() 함수에서 처리되도록 해주었습니다.
이렇게 해서 된 경우도 있구나 참고하시면 될듯합니다.
감사합니다.
'Android > 안드로이드 프로그래밍' 카테고리의 다른 글
안드로이드 JSON response 가 배열로 바로 넘어오는 경우 (0) | 2020.09.27 |
---|---|
[앱 업데이트] DailyEng v1.3.9 – 날짜이동 기능 추가 (20.09.20) (0) | 2020.09.20 |
[앱 업데이트]KNOW PICTURE v1.4.5 - 사진에서 문자 추출(OCR) (0) | 2020.08.27 |
[신규앱등록]BRITA Purifier v1.0.1- 브리타 정수기 필터교체주기 알려주는 앱 (0) | 2020.08.18 |
DailyRussian - 잠깐잠깐 시간에 러시아어 공부하는 앱 업데이트 소식 - ver1.5.0 (0) | 2020.06.27 |