2017-10-12 1 views
-1

Ich muss nächste Registerkarte wechseln, wenn eine Schaltfläche aus einem Kind-Fragment geklickt wird.So wählen Sie die nächste Registerkarte aus Kind Fragment

Dies ist, wie ich Setup-Tabs in Eltern,

TabAdapter adapter; 

private void setUpTabs(ViewPager viewPager) { 

    adapter = new TabAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new FirstTabFragment(), "First Tab"); 
    adapter.addFragment(new SecondTabFragment(), "Second Tab"); 
    viewPager.setAdapter(adapter); 

} 

Und meine TabAdapter Klasse,

public class TabAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public TabAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 

ich eine Methode erstellt Tab wechseln innerhalb Eltern

TabLayout myTabs= (TabLayout) findViewById(R.id.my_tabs); 

Button chkBtn = (Button) findViewById(R.id.check_button); 

chkBtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     viewPager.setCurrentItem(1); 
    } 
}); 

Switching Tabs in Elternklasse funktioniert gut. Aber wie könnte ich dasselbe in FirstTabFragment tun, bitte helfen Sie mir.

Antwort

1

Sie Ihre UI mehr interaktive und gut aussehend zu machen, werde ich teilen, was ich habe implementiert.

Um nur auf Ihre viewPager von der Java-Datei des Fragments zuzugreifen, deklarieren Sie Ihre viewPager wie unten in Ihrer übergeordneten Aktivität.

public static ViewPager viewPager; 

Dann in der onClick Methode oder onClickListener eines Knopfes im Fragment, können Sie nur diese verwenden.

ParentActivity.viewPager.arrowScroll(View.FOCUS_RIGHT); 

Dies wird glatt scrollen Ihre viewpager zum zweiten Fragment, und ja, wenn Sie von Scrollen der Benutzer beschränken möchten, lesen here direkt können Sie das Scrollen von viewPager deaktivieren.

Sie können auch den Fokus verschieben nach links, wenn der Benutzer zurück zu FirstFragment von nur

ParentActivity.viewPager.arrowScroll(View.FOCUS_LEFT); 

Und ja gehen will, wird es arbeiten, wie ich ersten Test vor der Veröffentlichung Antworten, albert mich.

3

sollten Sie setCurrentItem(int item)

die aktuell Seite einrichten ausgewählt verwenden. `

Beispielcode

chkBtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     viewPager.setCurrentItem(2); 
    } 
}); 
+0

Vielen Dank! Es hat mir geholfen. Ich habe eine Bearbeitung in Frage gestellt. können Sie bitte helfen, dass – ChyperX

+0

@ user8595331 sicher können Sie mehr erklären –

2

sollten Sie rufen

viewPager.setCurrentItem(fragmentIdex);

Verwandte Themen