Android Fragment 전환 시 Fragment 를 다시 로드하지 않음
6317 단어 소결
매번 다시 불러올 때마다, 우리는fragment의 교체를 위해 사용하는 Replace를 사용합니다.
만약fragment의 데이터를 다시 불러오지 않으면dd로fragment를 추가합니다. 표시할 때는 show를 사용하고, 전환할 때는hide로 현재, show 전환 목표를 삭제합니다.
구체적인 실현 코드는 다음과 같다.
private FragmentManager fm;
private FragmentTransaction ft;
// fragment
public Fragment mContent, fragment_in, fragment_qm, fragment_se;
// fragment
fragment_in = new MakePlanFragment();
fragment_qm = new CourseFragment();
fragment_se = new MakePlanFragment();
setDefaultFragment(fragment_in);
기본fragment 디스플레이를 설정합니다.전환이 없을 때 보이는fragment입니다.public void setDefaultFragment(Fragment fragment) {
fm = getFragmentManager();
ft = fm.beginTransaction();
ft.add(R.id.fragment_content, fragment).commit();
mContent = fragment;
}
// fragment
public void switchContent(Fragment to) {
if (mContent != to) {
fm = getFragmentManager();
ft = fm.beginTransaction();
if (!to.isAdded()) { // add
ft.hide(mContent).add(R.id.fragment_content, to).commit(); // fragment,add Activity
} else {
ft.hide(mContent).show(to).commit(); // fragment,
}
mContent = to;
}
}
위의 이 switchContent 방법은fragment를 전환하는 방법으로 봉인하는 것입니다.사용하는 곳에서 우리가 필요로 하는 목표fragment로 직접 전송하면 됩니다.다음과 같습니다.switchContent(fragment_in);
우리가 전환할 목표fragment에 참조한다.이렇게 하면 우리의 전환fragment를 실현하지만 다시 불러오지 않습니다.다시 로드하는 경우 키 코드는 다음과 같습니다.
fm = getFragmentManager();
ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment_in);
ft.commit();
이것이 바로 무거운 짐을 싣는 것과 다시 싣지 않는 것의 차이이다.본질을 이해하면 훨씬 간단해진다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 템플릿의 가감 곱하기 나누기 기본 구문Django 템플릿 덧셈: Django 모델 빼기: Django 모듈 곱셈: Django는 나눗셈을 하는데, 여기에widthratio라는 방법을 사용합니다. 데이터는 두 개의 소수점을 보존한다 복잡한 연산 나눗셈 및...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.