2016-03-12 4 views
-1

У меня есть ViewPager внутри действия. Все работает как задуманоФрагмент не отображается после нажатия на элемент recyclerview

это внутри onCreate(Bundle savedInstanceState) деятельности

myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); 
viewPager = (ViewPager) findViewById(R.id.viewpager); 
viewPager.setAdapter(myPagerAdapter); 

У меня есть один фрагмент, содержащий RecyclerView, в котором перечислены некоторые элементы. Вот что должно было произойти: Когда я нажимаю на элемент, он должен отображать DetailsFragment. Это мой код, когда пользователь нажимает на элемент:

FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction(); 
Fragment indi=DetailsFragment.newInstance(); 
ft.add(R.id.(Fragment Container ID), indi); 
ft.show(indi).commit(); 

Я попытался это:

FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction(); 
Fragment indi=DetailsFragment.newInstance(); 
ft.replace(R.id.(Activity Container ID), indi); 
ft.show(indi).commit(); 

И это:

FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction(); 
Fragment indi=DetailsFragment.newInstance(); 
ft.replce(R.id.(Container Fragment ID), indi); 
ft.show(indi).commit(); 

Android будет создавать фрагмент, потому что я настроили логин в onResume() метод внутри DetailsFragment, но он не показывает Все мои попытки дают мне тот же результат, что и фрагмент creat но ничего не появляется. И никакая ошибка не войти

+0

Пожалуйста, покажите ваш макет XML с идентификаторами (Container Идентификатор фрагмента, активность Контейнер ID, Фрагмент Container ID). – g4s8

ответ

0

Попробуйте это:

FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction(); 
Fragment indi=DetailsFragment.newInstance(); 
ft.replace(R.id.container, indi); 
ft.commit(); 

когда R.id.container является идентификатор ресурса макета, который вы хотите удалить, чтобы положить DetailsFragment на своем месте. Вы можете использовать в вашем main_activity.xml простой FrameLayout (или любой другой деятельности, вы находитесь в):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    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:orientation="vertical" 
    tools:context=".activities.MainActivity"> 

    <FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
     // you can put anything else here 

</LinearLayout> 
+0

Отлично работает :) – yanozai

Смежные вопросы