Невозможно использовать getChildFragmentManager() во фрагменте, добавленном в ViewPager.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Невозможно использовать getChildFragmentManager() во фрагменте, добавленном в ViewPager.

Сообщение Anonymous »

У меня есть приложение, использующее ActionbarSherlock, SlidingMenu, а также ViewPager. Это приложение работает хорошо, но я пытаюсь использовать вложенный фрагмент в ViewPager.

В настоящее время у меня есть один фрагмент для каждой страницы ViewPager > но я хочу иметь от 1 до 4 вложенных фрагментов во фрагменте страницы, в зависимости от погоды, которую я показываю на телефоне или планшете. Поэтому, если я использую телефон, я скажу, что в ViewPager 14 страниц, но на планшете я хочу объединить эти страницы, используя вложенные фрагменты.

Здесь это код, который я пытаюсь сделать, но он не позволит мне использовать getChildFragmentManager(). В нем указано, что getChildFragmentManager() не определен:

Код: Выделить всё

public class CharacterManualActivity extends BaseActivity {

private ViewPager mViewPager;
private TabsAdapter mTabsAdapter;

Boolean tabletLayout = false;

@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

Bundle extras = getIntent().getExtras();

// Check from the Saved Instance
characterUri = (savedInstanceState == null) ? null : (Uri) savedInstanceState.getParcelable(CharacterTable.CONTENT_ITEM_TYPE);

// Passed from the activity
if (extras != null) {

viewMode = extras.getInt("ViewMode");

characterUri = extras.getParcelable(CharacterTable.CONTENT_ITEM_TYPE);
}

mViewPager = new ViewPager(this);
mViewPager.setId(R.id.pager);
setContentView(mViewPager);

final ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

mTabsAdapter = new TabsAdapter(this, mViewPager);

if (tabletLayout) {
mTabsAdapter.addTab(bar.newTab().setText("Stats"), CSheetStatsFragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Abilities"), CSheet2Fragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Classes"), CSheet3Fragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Attacks/Defense"), CSheetAttacksFragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Weapons"), CSheet5Fragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Armor"), CSheet14Fragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Skills"), CSheetSkillsFragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Feats"), CSheet7Fragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Special Abilities/Race Features/Traits"), CSheet8Fragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Equipment"), CSheetEquipmentFragment.class, null);
//  mTabsAdapter.addTab(bar.newTab().setText("Worn Equipment"), CSheet10Fragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Spellbook"), CSheetSpellbookFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Familiar/Companion"), CSheetFamiliarFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Notes"), CSheetNotesFragment.class, null);
} else {
mTabsAdapter.addTab(bar.newTab().setText("Stats"), CSheetStatsFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Abilities"), CSheetAbilitiesFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Classes"), CSheetClassesFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Attacks/Defense"), CSheetAttacksFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Weapons"), CSheetWeaponsFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Armor"), CSheetArmorFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Skills"), CSheetSkillsFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Feats"), CSheetFeatsFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Special Abilities/Race Features/Traits"), CSheetSpecialTraitsFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Equipment"), CSheetEquipmentFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Worn Equipment"), CSheetWornEquipmentFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Spellbook"), CSheetSpellbookFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Familiar/Companion"), CSheetFamiliarFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Notes"), CSheetNotesFragment.class, null);

}

...

}

...

}

public class TabsAdapter extends FragmentPagerAdapter implements ActionBar.TabListener , ViewPager.OnPageChangeListener{
private final Context mContext;
private final ActionBar mActionBar;
private final ViewPager mViewPager;
private final ArrayList mTabs = new ArrayList();
private final String TAG = "21st Polling:";

static final class TabInfo{
private final Class clss;
private final Bundle args;

TabInfo(Class  _class, Bundle _args){
clss = _class;
args = _args;
}
}

public TabsAdapter(SherlockFragmentActivity fa, ViewPager pager) {
super(fa.getSupportFragmentManager());
mContext = fa;
mActionBar = fa.getSupportActionBar();
mViewPager = pager;
mViewPager.setAdapter(this);
mViewPager.setOnPageChangeListener(this);
}

public void addTab(ActionBar.Tab tab, Class clss, Bundle args){
TabInfo info = new TabInfo(clss, args);
tab.setTag(info);
tab.setTabListener(this);
mTabs.add(info);
mActionBar.addTab(tab);
notifyDataSetChanged();
}

@Override
public void onPageScrollStateChanged(int state) {

}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
mActionBar.setSelectedNavigationItem(position);

}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
Log.v(TAG, "clicked");
Object tag = tab.getTag();
for (int i = 0; i

Подробнее здесь: [url]https://stackoverflow.com/questions/18807932/unable-to-use-getchildfragmentmanager-in-a-fragment-that-was-added-to-viewpage[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»