androidXML中name属性和context属性有什么区别?

What is the difference between the name attribute and context attribute in android XML?

我是 android 的初学者,想知道两者之间有什么区别 tools:contextandroid: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"
   />

<fragment 标签的情况下,android:name 属性告诉 LayoutInflater 什么 Fragment class 在这个布局被膨胀时实例化.

tools:context 标签只是通知布局编辑器希望在何处使用此布局。这是为了让编辑器可以从 Activity 中提取主题,以显示更准确的预览(例如强调色、文本样式)。由于布局可以在多个地方重复使用,因此它只是对 IDE 如何呈现它的提示。