AndroidのLayoutにID名を指定するが、その時に+をつける理由をメモします。
<!-- ↓この'+'部分 -->
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_gravity="center"
android:textSize="16sp"
android:text="表示テスト"/>
公式ドキュメントでは
文字列の先頭にあるアット記号(@)は、 XML パーサーは ID 文字列の残りの部分を解析して展開し、 定義できます。プラス記号(+)は、新しいリソース名であることを示します。 これを作成して R.java 内のリソースに追加する必要がある 表示されます。
と書かれています。Javaに新しいリソースを生成してるみたい。
私の環境では+
は使用しなくてもビルドは通り正常に動作します。IDEの方でうまく補完しているかもしれません。
ConstraintLayoutなどでIDの指定をする場合、+は書かずに指定します。ですがこちらも同じく+を書いたとしてもエラー無く動作しますので、絶対に書いてはいけないこともなさそう。
参考