В чем разница между атрибутом 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 о том, как его отобразить.

Другие вопросы по тегам