Следующий вопрос заставил меня озадачить какое-то время, и я подумал, что, возможно, об этом об этом не скажешь. У меня есть следующие файлы layout.xml и style.xml;
Рез/макет/layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
style="@style/headerContainer" />
<LinearLayout
style="@style/footerContainer" />
<ScrollView
style="@style/contentContainer" />
</RelativeLayout>
RES/значения/style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="container">
<item name="android:layout_width">fill_parent</item>
</style>
<style name="headerContainer" parent="container">
<item name="android:layout_height">40dp</item>
<item name="android:layout_alignParentTop">true</item>
<item name="android:background">#80FF0000</item>
<item name="android:id">@+id/header</item>
</style>
<style name="footerContainer" parent="container">
<item name="android:layout_height">50dp</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:background">#8000FF00</item>
<item name="android:id">@+id/footer</item>
</style>
<style name="contentContainer" parent="container">
<item name="android:layout_height">60dp</item>
<item name="android:layout_below">@id/header</item>
<item name="android:layout_above">@id/footer</item>
<item name="android:background">#800000FF</item>
</style>
</resources>
Теперь возникает вопрос: существует ли опасность совпадения идентификаторов, когда я представляю их в файле style.xml? Смешно, что этот подход работает, на эмуляторе, который я использую, по крайней мере, но созданные идентификаторы не добавляются в класс R
. И я немного смущен, как они определяются после того, как мой макет завышен.