0

내 응용 프로그램은 developer.google.com에 정의 된 스 와이프 내비게이션 탭을 사용합니다. 여기서 FragmentPagerAdapter를 사용하고 있습니다. 의 그 다음에,안드로이드 접근성, 조각을 사용할 때 세 번째 탭 제목에 초점을두면 초점이 현재 탭 제목에 있어야합니까?

응용 프로그램을 시작할

, 1 조각의 onCreateView (...)가 호출됩니다

내 응용 프로그램에 액세스 할 수 있는지 확인하려고, 나는 다음과 같은 문제를 건너 왔어요 두 번째 및 세 번째 조각. 그 결과, 세 번째 탭의 제목은 응용 프로그램이 시작될 때 초점이 맞춰지고 첫 번째 탭이 현재 사용자에게 표시되고 제목을 읽어야하더라도 읽혀집니다.

탭을 스 와이프하는 동안 현재 볼 수있는 탭에 따라 탭 제목이 올바르게 읽혀집니다.

시작할 때 첫 번째 탭 제목에 포커스가 있고 읽히도록 수정할 수있는 방법이 있습니까?

P. 첫 번째 프래그먼트의 setUserVisibleHint (...) 메소드에서 접근성 이벤트를 전송하여이 문제를 해결했지만, 적어도 안드로이드 4.4에서는 작동하지 않습니다. 내가 보내는 접근성 이벤트는 첫 번째 조각의 textview의 sendAccessibilityEvent 함수 중 하나에 대한 호출입니다. 다시 한 번 명확히하기 위해 문제는 액세스 가능성 이벤트가 아니며 응용 프로그램이 실행 중이고 탭 사이를 스 와이프하는 동안 문제가 없습니다. 문제는 시작시 앱 포커스가 현재 표시된 프래그먼트에 있지 않고 대신 onCreateView()가 마지막으로 호출 된 프래그먼트에 있다는 점입니다.

+0

지금 내게 필요한 접근성 이벤트를 어떻게 보내십니까? 코드를 제공 할 수 있습니까? – Ayzen

+0

이 문제에 대한 해결책을 찾았습니까? – sowmia

답변

0

.. 당신의 mainactivity의 getItem 방법이 뭔가를이 작업을 수행합니다 ..

public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a Fragment 

     if (position == 0) { 
      return //Fragment 1; 
     } 
     if (position == 1) { 
      return //Fragment 2; 
     } 

     if (position == 2) { 
      return //Fragment 3; 
     } 
     return null; 
    } 

    @Override 
    public int getCount() { 
     // Show 3 total pages. 
     return 3; 
    } 

당신은 당신의 코드의 일부가 다음에 위 같은 것을 구현해야을 ..

public class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter { 
    public DemoCollectionPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int i) { 
     Fragment fragment = new DemoObjectFragment(); 
     Bundle args = new Bundle(); 
     // Our object is just an integer :-P 
     args.putInt(DemoObjectFragment.ARG_OBJECT, i + 1); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public int getCount() { 
     return 100; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return "OBJECT " + (position + 1); 
    } 
} 

위의 코드에서입니다 당신이 언급 한 구글 개발자 사이트.

+0

FragmentStatePagerAdapter가 아닌 FragmentPagerAdapter를 실제로 구현했음을 분명히해야합니다. 어쨌든 대답 주셔서 감사합니다. –

+0

새 프로젝트를 만드는 동안 Eclipse에서 탭보기에 대한 코드를 자동으로 생성 할 수 있습니다. 활동 만들기 섹션에서 탭 활동을 선택하고 다음 대화 상자에서 원하는대로 탐색 스타일을 선택하십시오. 당신은 그것의 위에 응용 프로그램을 만들 수 있습니다 .. 매우 쉽고 시간 절약 .. 그리고 pls는 당신을 도둑 맞으면 올바른 것으로 내 ans를 표시합니다 (idk 당신이 할 수 있으면 좋겠지 만 .. 나는 새로운데, 내가 생각하는 몇 가지 점이 필요해 ..) Thanks : D –