【发布时间】:2016-07-23 02:37:08
【问题描述】:
我在让我的工具栏和导航抽屉显示在新的布局文件上时遇到问题。它适用于整个应用程序,除了新的选项卡式布局视图。
我尝试在新java类的onCreate中激活它:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.workout_days);
mToolBar = activateToolbar();
setUpNavigationDrawer();
我不再收到错误消息,但工具栏仍未显示。我想知道是不是我的布局文件有问题。
基础活动:
public static final int HOME = 1;
public static final int MY_WORKOUT = 2;
public static final int MAXES = 3;
public static final int PROGRESS = 4;
public static final int WORKOUTS = 5;
public static final int HELP = 6;
private Class mNextActivity;
public static String mTitle = AppConstant.SHIEKO_WORKOUT;
public static int mType = HOME;
protected Toolbar mToolBar;
private NavigationDrawerFragment mDrawerFragment;
protected Toolbar activateToolbar() {
if(mToolBar == null) {
mToolBar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(mToolBar);
switch (mType) {
case HOME:
getSupportActionBar().setTitle(AppConstant.SHIEKO_WORKOUT);
break;
case MY_WORKOUT:
getSupportActionBar().setTitle(AppConstant.MY_WORKOUT);
break;
case MAXES:
getSupportActionBar().setTitle(AppConstant.SET_MY_MAXES);
break;
case PROGRESS:
getSupportActionBar().setTitle(AppConstant.MY_PROGRESS);
break;
case WORKOUTS:
getSupportActionBar().setTitle(AppConstant.WORKOUTS);
break;
case HELP:
getSupportActionBar().setTitle(AppConstant.FEEDBACK);
}
}
return mToolBar;
}
这是我的活动:我还有 3 个用于 3 个选项卡的其他片段 xml 页面,这些页面不包括工具栏或导航栏,因为我的理解是它们位于 tabview 下方。如果我错了,请纠正我请..
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--<RelativeLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent">-->
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="0dp">
<include android:id="@+id/app_bar"
layout="@layout/toolbar" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<!--</RelativeLayout>-->
<fragment
android:name="com.bestworkouts.sheikoworkout.NavigationDrawerFragment"
android:id="@+id/fragment_navigation_drawer"
tools:layout="@layout/fragment_navigation_drawer"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
app:layout="@layout/fragment_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
提前致谢!
【问题讨论】:
-
findViewById(R.id.app_bar)已返回空值。请检查是否存在于您的 XML 布局中 -
它在里面,但我把它移到了另一个地方。现在我没有收到错误,并且选项卡视图位于工具栏应位于的下方,但它仍然没有显示:(
-
你可以edit 和minimal reproducible example,好吗?很难说这两个 sn-ps 代码是如何交互的
-
我对 android 还很陌生,很遗憾,无法制作一个最小、完整、可验证的示例,但我用我的 xml 布局代码更新了主帖。我有 3 个仅包含 FrameLayout 和 Textview 的其他片段布局,但我认为它们不需要开始工作了!耶!我不得不将
标签: android navigation-drawer toolbar