Android 用另一个片段替换一个片段
我在这里看到了与此类似的问题,但无法找出我做错了什么: 我有一个listFragment和一个detailsFragment。当按下listFragment中的按钮时,我希望它显示detailsFragment 这是我的布局xml:Android 用另一个片段替换一个片段,android,android-fragments,fragmentmanager,Android,Android Fragments,Fragmentmanager,我在这里看到了与此类似的问题,但无法找出我做错了什么: 我有一个listFragment和一个detailsFragment。当按下listFragment中的按钮时,我希望它显示detailsFragment 这是我的布局xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/listContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<FrameLayout
android:id="@+id/detailsContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
风景版效果很好,但肖像画一直在崩溃。正如我所说,我已经研究了很多类似的问题,但没有发现我做错了什么。
我还尝试过使用replace(R.id.detailsContainer,fragment)但没有成功
非常感谢 这一行似乎引起了问题: fragment.setText(link) 因为您的片段尚未完成创建/绘制 尝试从
else
语句中删除提及的行,并将其添加到代码中:
...
} else {
DetailFragment fragment = new DetailFragment();
Bundle bundle = new Bundle();
bundle.putString("LINK", link);
fragment.setArguments(bundle);
...
然后在片段的onCreateView()
电话:
您需要发布崩溃的堆栈跟踪。
...
} else {
DetailFragment fragment = new DetailFragment();
Bundle bundle = new Bundle();
bundle.putString("LINK", link);
fragment.setArguments(bundle);
...
if (getArguments() != null) {
setText(getArguments().getString("LINK"));
}
Bundle bundle = new Bundle();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
bundle.putString("key", link);
fragmentTransaction.replace(R.id.listContainer, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();