Intereting Posts
Recyclerview – элементы перекрытия сверху вниз Расположение Android как кнопка с возможностью выбора Соединение было отказано при попытке подключиться к моему серверу REST с эмулятора Android Как проверить AlertDialog на Android? Android-карта Google v2 Кружок рисования Вызвано: android.database.sqlite.SQLiteException: невозможно обновить базу данных только для чтения с версии от 0 до 1 Eclipse / Android не может генерировать R-файлы для любого проекта Обратное геокодирование – Сервис недоступен – Перезапустить устройство, не решающее окончательно – критиковать мое ручное обратное геокодирование Android – разница между View.getResources () и View.getContext (). GetResources () Использование Gradle для разделения внешних библиотек в разделенных файлах dex для решения ограничений метода Dalvik 64k для Android Ожидание ожидаемого намерения не будет работать после того, как приложение будет приостановлено или убито Как получить список координат для уличных дорожек с помощью API Google Maps API? Android.app.Application нельзя использовать для android.app.Activity MvvmCross – попытка использования фрагментов И последняя поддержка lib приводит к связыванию проблем Как программно отображать свернутые элементы в CoordinatorLayout?

Как заменить ViewPager на фрагмент

У меня есть следующий макет

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> 

Everyting отлично работает, но я хочу заменить ViewPager фрагментом

 getSupportFragmentManager().beginTransaction() .replace(R.id.view_pager, new CustomFragment()) .commit(); 

Это не поменяет ViewPager, что мне делать ???

    Вы можете создать фрагмент, содержащий ViewPager, а затем заменить этот фрагмент.

     public class ViewPagerContainerFragment extends Fragment { private ViewPager mViewPager; public ViewPagerContainerFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.view_pager_container_fragment, container, false); // Set up the ViewPager, attaching the adapter and ... mViewPager = (ViewPager) root.findViewById(R.id.viewPager); // do other stuff... return root; } } 

    view_pager_container_fragment.xml

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rlMain" android:layout_width="fill_parent" android:layout_height="fill_parent"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </RelativeLayout> 

    Файл вашей деятельности .xml:

      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> 

    Затем замените фрагменты следующим образом:

    Добавление ViewPagerContainerFragment в макет Activity:

     getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, new ViewPagerContainerFragment()) .commit(); 

    И где-нибудь позже в коде: (если вы хотите – заменить ViewPagerFragment другим фрагментом)

     getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, new CustomFragment()) .commit(); 

    Убедитесь, что вы не создаете утечек памяти и правильно настроили свой адаптер.