【发布时间】:2019-06-05 14:35:45
【问题描述】:
我正在尝试制作一个活动,其中两个片段一个接一个地显示。下面是我的活动和片段代码。
主活动
public class DeliveryActivity extends BaseActivity {
private static final String ROOT_FRAG = "root_fragment";
@Override
protected int layoutRes() {
return R.layout.activity_delivery;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null)
getSupportFragmentManager()
.beginTransaction().add(R.id.fl_container,
new DeliveryListFragment())
.addToBackStack(ROOT_FRAG).commit();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
public void navigateToDetailsScreen() {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fl_container,
new DeliveryDetailFragment()).commit();
}
}
BaseActivity.java
public abstract class BaseActivity extends DaggerAppCompatActivity {
@LayoutRes
protected abstract int layoutRes();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layoutRes());
}
}
activity_delivery.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
当我添加第一个片段时,容器很好并且允许添加,但是当我尝试替换片段(第二个片段)时,它给了我以下错误。
java.lang.IllegalArgumentException: No view found for id 0x7f08004c (com.assessment.project:id/fl_container) for fragment SecondFragment{15674f3 #2 id=0x7f08004c}
【问题讨论】:
-
您从哪里拨打
#navigateToDetailsScreen()?
标签: java android fragment containers illegalstateexception