이 자습서에서는 fragmentstatepageradapters 사용 방법에 대해 https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html 을 사용했습니다. 잘 작동하지만 ArrayListFragment의 인스턴스 번호를 사용할 수없는 것 같습니다. I가 다음 화면으로 와이프 때 앱에게 첫 화면 표시 조각 0. 시작할 때프래그먼트 인스턴스 번호를 표시하는 데 문제가 있습니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
View tv = v.findViewById(R.id.text);
((TextView)tv).setText("Fragment #" + mNum);
...
이 조각 1 표시 등 : 튜토리얼 헤더로 인스턴스를 표시 한이 비트가있다. 하지만이 추가 할 때 : 나는 심지어 아무것도 건드리지 전에이 응용 프로그램을 시작할 때
이Log.i("instancenumber", Integer.toString(mNum));
바로 ((TextView)tv)...
아래 로그가
instancenumber 0
instancenumber 1
를 잘 보여줍니다 때 내가 오른쪽으로 스 와이프하면 2로 전환되고 마지막으로 스 와이프하면 아무 것도 로그하지 않고 거꾸로 돌아 가지 않습니다. 또한 upda가 아닙니다. 제대로.
저는 인스턴스 번호 개념이나 onCreateView 메서드를 올바르게 이해하지 못하고 있다고 생각합니다. 올바른 인스턴스 번호는 어떻게 얻을 수 있습니까? 그것은 textview와 함께 작동하는 것 같습니다.
미리 감사드립니다,
hachel
PS : 컨텍스트 : 내가 MP3 재생이 내가 더 빨리 (증가 인스턴스 번호에 의해 계산 된 재생 속도)를 재생하려는 때문에이 번호가 필요하며 I 다음 화면으로 넘어갈 때 새 이미지 표시
좋아요, 조각을 캐싱하지 않도록 설정할 수 있습니다. 현재 내가 어떤 부분을 동적으로 볼 수있는 다른 방법이 있습니까? – hachel
@hachel 당신은 그것을 끄지 말아야한다. 당신이 선택한 조각을 바꿀 때 지체가 생길 것이다. 현재 조각을 얻으려면 다음을 사용할 수 있습니다. http://stackoverflow.com/questions/18609261/getting-the-current-fragment-instance-in-the-viewpager – jonathanrz
감사합니다. 사용하지 못했을 것입니다. 그런 다음 캐싱 때문에 oncreateview가 아니라 약간의 청취자를 사용합니까? – hachel