2015-01-29 4 views
-1

Я собираюсь разработать приложение для Android для использования Fragments с помощью ViewPager с использованием FragmentPagerAdapter. Я пытаюсь заменить фрагменты onClick кнопки внутри фрагмента, но когда я нажимаю на эту кнопку, текущий макет поднимается, и следующий макет все еще наступает на эту позицию. Метки ie2 появляются на одном фрагменте, и я не хочу этого ,Фрагменты не заменяются должным образом в FragmentPagerAdapter

Я использую эти шаги, чтобы заменить, но не получать изменены надлежащим образом

FragmentTransaction transaction = getActivity() 
        .getSupportFragmentManager().beginTransaction(); 
transaction.replace(R.id.select_program_root, newFrag); 
transaction.addToBackStack(null); 
transaction.commit(); 

Даже я использую TabHost с ViewPager внутри горизонтальной ScrollView. Все в порядке в моем приложении. Я только застрял на замене фрагментов onClick кнопок, которые находятся внутри фрагментов.

Заранее спасибо.

+0

Вы пытались использовать getChildFragmentManager()? –

+0

Nope. Используется ли также для замены фрагментов? Если да, отправьте свой примерный код. –

+0

getChildFragmentManager() возвращает частный FragmentManager для размещения и управления фрагментами внутри этого фрагмента (документация Google). Вы используете его так же, как getSupportFragmentManager(). 'FragmentTransaction transaction = getActivity() .getChildFragmentManager(). BeginTransaction(); transaction.replace (R.id.select_program_root, newFrag); transaction.addToBackStack (null); transaction.commit(); ' –

ответ

0

Наконец-то я решил это, реализовав несколько строк кода.

Создать этот метод в ваш FragmentActivity:

public void setCurrentItem(int item, boolean smoothScroll) { 
    mViewPager.setCurrentItem(item, smoothScroll); 
} 

И называют его onClick фрагмента:

((MainActivity) getActivity()).setCurrentItem(3, true); 
Смежные вопросы