2016-08-02 74 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

相關問題