Android “tools” namespace in layout xml documentation

谁说胖子不能爱 提交于 2019-11-26 19:43:45

问题


Per the question here,

What's "tools:context" in Android layout files?

The 'tools' namespace reference (xmlns:tools="http://schemas.android.com/tools") has begun to appear in my layouts recently, and I want to know more. The original post only described the 'tools:context' attribute, but I have also noticed usage of the "tools:listitem" attribute appearing when I have designated a preview layout item for a listview, i.e.

<ListView
    android:id="@+id/lvCustomer"
    tools:listitem="@layout/customer_list_item" >
</ListView>

Are there more elements?

What brought me to this 'tools' namespace is that I want to be able to have 'preview-only' text (i.e. in a TextView or EditText) when using the layout designer in eclipse.

Currently, I assign the 'text' or 'hint' property for previewing text when arranging my layouts... but then I always have to remember to clear the preview value from within the code.

Ideally, instead of

<string name="preview_customer_name">Billy Bob's Roadhouse Pub</string>

...

<TextView
    android:id="@+id/tvCustomerName"
    android:text="@string/preview_customer_name"
</TextView>

have a something like:

<TextView
    android:id="@+id/tvCustomerName"
    tools:previewText="@string/preview_customer_name"
</TextView>

Thanks-


回答1:


We've just added support for designtime attributes like this in Android Studio 0.2.11. See http://tools.android.com/tips/layout-designtime-attributes for more.




回答2:


Think of them as design time helpers only.They do not get processed in actual view rendering at run time.

For example you want to set background of some view in your layout design when working on android studio so that you can make clear distinction where that particular view is.So you would normally do that with

android:background="@color/<some-color>"

Now risk is that sometimes we forget to remove that color and it gets shipped in apk. instead you can do as follows:

tools:background="@color/<some-color>"

These changes will be local to android studio and will never get transferred to apk.

And also check out http://tools.android.com/tech-docs/tools-attributes for more options.




回答3:


You will find tool attribute when you set object in graphical layout.

Listview (in graphical mode) -> right Click -> Preview List Content -> Choose Layout...

produces:

tools:listitem="@layout/customer_list_item"


来源:https://stackoverflow.com/questions/11641340/android-tools-namespace-in-layout-xml-documentation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!