Search code examples
androidxmlandroid-layoutgraphical-layout-editor

What's tools:layout in fragment xml file?


I started a new Android Application based on master/detail flow template using ADT Eclipse. This template creates two activities, a master fragment and a detail fragment in order to fit small and larger screens.

I noticed the activity_item_list.xml file has the tools:layout attribute:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/item_list"
    android:name="com.example.fragmenttwopanel.ItemListFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    tools:context=".ItemListActivity"
    tools:layout="@android:layout/list_content" />

I tried to delete the attribute and the app runs in the same way but in the graphical layout tab of ADT, a message ask me for:

pick preview layout from the "Fragment Layout" context menu

What is its purpose? Is it just for preview in graphical layout?


Solution

  • This is a namespace used by the IDE tools. This is not needed to run the application on a device (or emulator). On the other hand, if you leave them, Android will ignore them when the application is running on a device.

    This is used by e.g. lint and graphical layout tab.

    You can check how it's used by lint here: http://developer.android.com/tools/debugging/improving-w-lint.html in section Configuring lint checking in XML.