В чем разница между атрибутом name и атрибутом context в XML для Android?
Я новичок в Android и мне было интересно, какая разница междуtools:context
а также android:name
атрибуты?
1. android:name=".fragments.DataFragment"
2. tools:context=".activities.MainActivity"
Полный код:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment"
android:name=".fragments.DataFragment"
tools:layout="@layout/data_fragment"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.MainActivity"
/>
1 ответ
Решение
В случае с <fragment
тег, android:name
атрибут говорит LayoutInflater
какие Fragment
класс для создания экземпляра, когда этот макет раздувается.
tools:context
тег просто сообщает редактору макетов, где этот макет предполагается использовать. Это сделано для того, чтобы редактор мог извлечь тему из этого занятия, чтобы отобразить более точный предварительный просмотр (например, цвета акцента, стили текста). Поскольку макет можно повторно использовать в нескольких местах, это всего лишь подсказка IDE о том, как его отобразить.