2016-07-21 14 views
0

ツールバーとナビゲーションドロワーを新しいレイアウトファイルに表示する際に問題が発生します。新しいタブ付きレイアウトビューを除いて、アプリ全体で機能しています。ツールバー/ナビドロワーがタブ付き表示で機能しない

私は、新しいJavaクラスののonCreateでそれをアクティブにしようない:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.workout_days); 

    mToolBar = activateToolbar(); 
    setUpNavigationDrawer(); 

私はもはやエラーを取得しますが、ツールバーがまだ表示されません。私はそれが私のレイアウトファイルに何か問題があるのだろうかと思っています。

baseactivity:ここ

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> 

ありがとうございます!あなたのレイアウトは、このようにする必要があり

+0

'findViewById(R.id.app_bar)'がnullを返しました。あなたのXMLレイアウトに存在することを確認してください –

+0

それはそこにありましたが、別の場所に移動しました。今ではエラーが出ませんし、タブビューはツールバーの下にありますが、それでもまだ表示されません:( – LBJ33

+0

[mcve]で[編集]できますか?コードのスニペットが相互作用する –

答えて

0

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout> 

    <android.support.design.widget.CoordinatorLayout> 
     <android.support.design.widget.AppBarLayout> 
      <android.support.v7.widget.Toolbar/> 
     </android.support.design.widget.AppBarLayout> 

     <ViewPager> 
    </android.support.design.widget.CoordinatorLayout> 

    <!-- Slider Menu --> 
    <android.support.design.widget.NavigationView/> 
</android.support.v4.widget.DrawerLayout> 

ところでgetSupportActionBar().setTitle(AppConstant.WORKOUTS)を呼び出す必要はありません、あなただけのアクションバーのタイトルを設定するsetTitle()を呼び出すことができます。

+0

私のBaseActivityはAppCompatActivityを拡張しています。そして、私の新しいクラスはBaseActivityを拡張しています。タイトルの設定についてのヒントをありがとう! – LBJ33

+0

URW、plsがXMLとタブ関連のコードを更新する^^ –

+0

xmlレイアウト用の新しいコードが更新されました。何か必要な場合はお知らせください。各タブには3つのタブレイアウトフラグメントがありますが、フレームレイアウトとテキストビューのみが含まれています – LBJ33