2016-08-02 81 views
1

在Android上定义折叠工具栏时,出现app:toolbarId错误。正如你在下面看到的那样,工具栏被定义。我注意到我可以通过完全忽略工具栏的id来解决它(然后它接受它遇到的第一个工具栏),但我无法弄清楚为什么它停止工作,并且如果有什么我失踪......任何想法?未找到与升级到appcompat后找到的名称匹配的名称v24

<android.support.design.widget.CollapsingToolbarLayout 
     app:toolbarId="@id/toolbar" 
     ... > 

     <ImageView 
      ... /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      ... /> 

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

回答

1

原来的问题是一个前瞻性参考。不是v23/v24的问题,而是我并行做出的一些其他更改的结果......最初,这种布局XML并不是第一个布局XML列表(按字母顺序排列),因此以前的布局XML(其他一些活动)定义了一个@id/toolbar。这足以让Gradle接受本活动中的app:toolbarId="@id/toolbar"作为有效参考。幸运的是(或者不是......)在运行时仍然提到了正确的工具栏 - 这个活动的@id/toolbar - 所以我没有注意到我的(前向引用)错误。

修复很简单 - 将“+”移动到app;toolbarId中的(第一个)参考(这正是我应该首先完成的任务)。见下:

<android.support.design.widget.CollapsingToolbarLayout 
     app:toolbarId="@+id/toolbar" 
     ... > 

     <ImageView 
      ... /> 

     <android.support.v7.widget.Toolbar 
      android:id="@id/toolbar" 
      ... /> 

    </android.support.design.widget.CollapsingToolbarLayout> 
+0

有点奇怪它曾经工作过的方式。 – alzee

+0

你是对的,我也很惊讶 - 在你的评论之后 - 我决定仔细检查......意识到根本原因不是v24,但其他一些改变......会相应地更新我的答案。 – Uri

相关问题