Fragments и ViewPager
Добавлено: 21 янв 2014, 22:32
Всем привет! Возникла такая проблемка! Есть главное Activity, отнаследованное от SherlockFragmentActivity с 3 вкладками, для каждой вкладки написан свой фрагмент, фрагменты инициализирую в методе onCreate Activity.
Фрагменты отображаю так:
В commercialFragment есть ViewPager, в котором идёт перелистывание 3 фрагментов
Код commercialFragment такой:
Так вот, проблема в том, что при переключении между вкладками, содержимое вкладки с commercialFragment не перерисовывается, т.е вижу пустой фрагмент (метод onCreateView у текущего фрагмента в ViewPager не вызывается) ...
Может кто знает в чём проблема!?
Фрагменты отображаю так:
Код: Выделить всё
@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
if (0 == tab.getPosition()) {
transaction.replace(R.id.fragmentContainer, nbuFragment);
}
if (1 == tab.getPosition()) {
transaction.replace(R.id.fragmentContainer, commercialFragment);
}
if (2 == tab.getPosition()) {
transaction.replace(R.id.fragmentContainer, metalsFragment);
}
}Код commercialFragment такой:
Код: Выделить всё
public class CommercialFragment extends SherlockFragment {
CurrencyFragment usd;
CurrencyFragment eur;
CurrencyFragment rub;
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.pager, container, false);
mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());
mViewPager = (ViewPager) rootView.findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
return rootView;
}
public void setData(final ArrayList<Object> rates) {
usd.setData(rates);
eur.setData(rates);
rub.setData(rates);
}
// ///////////////////////////////////////////////////////////////////////////////////////////////////
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return usd = CurrencyFragment.newInstance("USD");
case 1:
return eur = CurrencyFragment.newInstance("EUR");
case 2:
return rub = CurrencyFragment.newInstance("RUB");
}
return null;
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "USD";
case 1:
return "EUR";
case 2:
return "RUB";
}
return null;
}
}
}Может кто знает в чём проблема!?