2016-06-16 2 views
1

Я застрял в очень интересной проблеме, которую я пытался решить довольно долго. Я добавил панели инструментов для просмотра в Android раньше, но никогда не сталкивался с проблемой ниже.Панель инструментов ничего не отвечает

При непосредственном доступе к панели инструментов или присвоении ее setSupportActionBar(myToolbar) Сама панель инструментов никоим образом не может быть изменена. Я даже попытался убрать представление, и это не сработает. Кроме того, на панели инструментов ничего нет. Нет имени приложения, меню гамбургера или стрелки назад, ничего.

Соответствующий код размещен ниже:

BaseActivity.java

@Nullable 
@BindView(R.id.app_bar) 
protected Toolbar mToolbar; 

private Unbinder unbinder; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(getLayoutResource()); 
    unbinder = ButterKnife.bind(this); 

    if(mToolbar != null) { 
     Timber.tag("Toolbar").d("Toolbar is not null. Oh glorious day"); 
     setSupportActionBar(mToolbar); 
    } 
} 

base_drawer_activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawer_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:fitsSystemWindows="true"> 

      <android.support.design.widget.AppBarLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:fitsSystemWindows="true" 
       android:orientation="vertical"> 

       <include 
        android:id="@+id/app_bar" 
        layout="@layout/toolbar" /> 

      </android.support.design.widget.AppBarLayout> 

      <FrameLayout 
       android:id="@+id/container_frame" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:clipToPadding="true"> 

      </FrameLayout> 

     </LinearLayout> 

     <android.support.design.widget.NavigationView 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/navigation_view" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:fitsSystemWindows="true"/> 

    </android.support.v4.widget.DrawerLayout> 
</android.support.design.widget.CoordinatorLayout> 

toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/colorPrimary" 
    android:clipToPadding="true" 
    app:layout_collapseMode="pin" 
    app:layout_scrollFlags="scroll|enterAlways" 
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

styles.xml

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="android:windowBackground">@color/colorDefaultBackground</item> 
    </style> 

</resources> 

Тег приложения в моем манифесте также имеет android:theme="@style/AppTheme" набор

сама панель не является нулевым в представлении (уже проверил) И не является самим SDK, поскольку я открыл проект, используя тот же метод создания панели действий поддержки, и он работал нормально.

Я пропустил что-то действительно очевидное здесь?

ответ

1

Решено!

Осмотрев немного, я обнаружил, что мой класс child фактически вызывает setContent, а также мой родительский класс, переопределяя любые изменения в представлении, которое я сделал.

Просто простой надзор с моей стороны.