Search code examples
androidgraphical-layout-editor

Can you set graphical layout preview-only text on a TextView?


I have a styled TextView whose real text is populated dynamically at runtime. The Graphical Layout view is very useful for getting a feel on how this component works with others in terms of look and feel, etc. There is no sensible default to this text field and I wish it to be blank before being populated. If I don't specify any text in the TextView declaration then the TextView is blank. I can set the text manually using:

<TextView
     ...
     android:text="Preview text"/>

and then switch to the Graphical Layout. However, I must remember to remove this or risk it being shipped in my production version.

Is there a way to specify text which is only seen in the Graphical Layout preview but not applicable at runtime?

EDIT: I'm using Eclipse ADT.


Solution

  • Yes you can with the design tools extension attributes in Android Studio.

    See this page https://developer.android.com/studio/write/tool-attributes.html

    Basically you define the tools namespace

     xmlns:tools="http://schemas.android.com/tools"
    

    Then use it to set your placeholder text.

    <EditText 
            tools:text="John Doe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    

    This actually works with most (if not all xml attributes).

    e.g

    tools:visibility="gone"
    

    would set the preview visibility to "gone" but the runtime visibility would be unchanged.