Fragments и ViewPager

Интерфейс, диалоги, темы, стили, меню
Ответить
vano1305
Сообщения: 5
Зарегистрирован: 20 янв 2014, 23:12

Fragments и ViewPager

Сообщение vano1305 » 21 янв 2014, 22:32

Всем привет! Возникла такая проблемка! Есть главное Activity, отнаследованное от SherlockFragmentActivity с 3 вкладками, для каждой вкладки написан свой фрагмент, фрагменты инициализирую в методе onCreate Activity.

Фрагменты отображаю так:

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

@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 есть ViewPager, в котором идёт перелистывание 3 фрагментов
Код 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;
		}
	}
}
Так вот, проблема в том, что при переключении между вкладками, содержимое вкладки с commercialFragment не перерисовывается, т.е вижу пустой фрагмент (метод onCreateView у текущего фрагмента в ViewPager не вызывается) ...

Может кто знает в чём проблема!? :(
Вложения
До переключения на соседнюю вкладку
До переключения на соседнюю вкладку
screenshot-1390332389289.png (119.78 КБ) 1851 просмотр
После переключения на соседнюю вкладку
После переключения на соседнюю вкладку
screenshot-1390332429863.png (23.75 КБ) 1851 просмотр

Ответить