In meinem MainActivity
mit ActionBar
höre ich einen Zuhörer von einem DialogFragment
und basiert auf dem Fragment von ActionBar
ich bin, ich brauche ein paar Dinge zu tun.Beide Fragment in ActionBar true zurück für fragment.isVisible()
ich Code unten bin mit dem aktuellen Fragment zu erhalten und zu prüfen, welche der beiden ActionBar
Fragment ich bin auf:
private Fragment getVisibleFragment() {
FragmentManager fragmentManager = getSupportFragmentManager();
List<Fragment> fragments = fragmentManager.getFragments();
if (fragments != null) {
for (Fragment fragment : fragments) {
if (fragment != null && fragment.isVisible())
return fragment;
}
}
return null;
}
aber fragment.isVisible()
kehrt gilt sowohl für die Fragmente. Warum sollte das sein? Gibt es eine andere Flagge, die ich berücksichtigen muss?
Unten ist mein FragmentPagerAdapter
implentation:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
Context context;
public SectionsPagerAdapter(FragmentManager fm, Context context) {
super(fm);
this.context = context;
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
return new ReceivedListFragment();
case 1:
return new SentListFragment();
}
return null;
}
@Override
public int getCount() {
// Show 2 total pages.
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return context.getString(R.string.title_section1).toUpperCase(l);
case 1:
return context.getString(R.string.title_section2).toUpperCase(l);
}
return null;
}
}
Wie fügen Sie Ihre Fragmente hinzu? Können Sie den Teil anzeigen, in dem Sie die Fragmenttransaktion ausführen? – jonDoe
@jonDoe hat es dem Code hinzugefügt. – user1324887