我希望在所有活动中使用导航抽屉。因此,我使用了BaseActivity作为导航抽屉并从基本活动中扩展了其他活动.Base活动具有导航抽屉。仪表盘活动延伸基地活动,但它会引发异常,当我尝试使用butterknife绑定的观点说
Android:在活动中使用ButterKnife从其他活动延伸
java.lang.IllegalStateException: Required view 'dashboard_frameLayout' with ID 2131558517 for field 'frameLayout' was not found.
这里有相关的文件
BaseActivity.java
public class BaseActivity extends AppCompatActivity {
@BindView(R.id.toolbar) Toolbar toolbar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
ButterKnife.bind(this);
//set toolbar and both Navigation Drawer
}
DashboardActivity.java
public class DashBoardActivity extends BaseActivity {
@BindView(R.id.dashboard_frameLayout)
FrameLayout frameLayout;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = getLayoutInflater().inflate(R.layout.activity_dashboard,frameLayout);
ButterKnife.bind(this,view);
init();
}
private void init() {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dashboard_frameLayout);
if(fragment != null){
Utils.getInstance().addFragment(this,new Fragment_Dashboard(),R.id.dashboard_frameLayout);
}
}
}
activity_dashboard.xml
<FrameLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dashboard_frameLayout"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
为什么在仪表板活动中未找到framelayout?
正确读取的问题。它不是关于fragment.Its关于framelayout,它出现在activity_dashboard.xml中,即使在绑定视图后也是null。 –
和你的活动布局应该有一个工具栏和一个容器内的FrameLayout定义。我没有看到它的工具栏。 – Nicholas
如果我使用的setContentView(R.layout.activity_dashboard)在subclass.It将覆盖layout.I不会得到这个activit.y –