뷰 페이저에 4 개의 페이지가 있고 위치 0에서 스 와이프하면 3 위치 0의 항목은 위치 2에 도달하면 파괴되고 위치 1의 항목은 위치 4에 도달하면 파괴됩니다.
나는 그것들을 즉시 파괴해야합니다. 왜냐하면 지금은 일어나지 않는 뷰로 돌아 가면 다시 만들어지기를 원하기 때문입니다.
public class ViewPagerTutorialAdapter extends FragmentStatePagerAdapter {
public ViewPagerTutorialAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Bundle args = new Bundle();
args.putInt("page", position);
TutorialPageFragment fragment = new TutorialPageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return 4;
}
}
public class TutorialPageFragment extends android.support.v4.app.Fragment {
private ImageView ivTutorialPage;
private TransitionDrawable myTransitionDrawable;
private View rootView;
public TutorialPageFragment() {
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_tutorial_page, container, false);
return rootView;
}
@Override
public void onResume() {
super.onResume();
ivTutorialPage = (ImageView) rootView.findViewById(R.id.ivTutorialPage);
ivTutorialPage.setImageResource(R.drawable.fadein);
myTransitionDrawable = (TransitionDrawable) ivTutorialPage.getDrawable();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
myTransitionDrawable.startTransition(1000);
}
});
}
}, 1000);
}
}
이것이 질문에 대한 정확한 대답은 아니지만 더 복잡한 레이아웃에서 수행하는 데 비용이 많이 들고 사용자 경험을 악화시키는 끊김 현상 / 추가 지연을 유발할 수 있으므로 필요하지 않은 경우 뷰를 다시 생성하지 않는 것이 좋습니다.
이 경우 (조각이 표시 될 때 애니메이션 실행) setUserVisibleHint
사용자가 화면을 방문 할 때 트리거되는 애니메이션을 실행하는 코드로 조각 을 재정의 하는 것이 좋습니다 . 가장 큰 장점은 물론 뷰를 다시 만들 필요가 없으며 Android가 자연스럽게 내부 최적화를 수행 할 수 있다는 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다