我在一个活动中有一个ViewPager。一切都按预期工作
这是在活动的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会创建片段,因为我在DetailsFragment内部设置了onResume()
方法的登录但是它没有显示
我的所有尝试都给了我相同的结果,片段被创建但没有任何显示。
并且没有错误日志
答案 0 :(得分:0)
试试这个:
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
Fragment indi=DetailsFragment.newInstance();
ft.replace(R.id.container, indi);
ft.commit();
当R.id.container
是您要删除的布局的资源ID,以便将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>