Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set default text in TextView to see it in the layout preview while binding?

So I would like to see my layout preview with the fields filled with something like default placeholders but if I use bindings the settext attribute is already used and the fields are showing empty since there is no info from the models yet.

<TextView
                android:id="@+id/tv_user_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="5dp"
                android:gravity="center"
                **android:text="@{showBlueportSpotViewModel.name}"**
                android:textAllCaps="true"
                android:textSize="20sp"
                android:textStyle="bold"/>

I tried this:

android:text="@{showBlueportSpotViewModel.name ?? @string/blueport_placeholder_name}"

but I still see the view empty.

Do you guys any workaround? I guess once a workaround is found, it can be used to ImageView and src for example and etc..

Thank you!

like image 445
RogerParis Avatar asked Jul 08 '15 15:07

RogerParis


People also ask

How do I assign text to TextView?

Set The Text of The TextView You can set the text to be displayed in the TextView either when declaring it in your layout file, or by using its setText() method. The text is set via the android:text attribute. You can either set the text as attribute value directly, or reference a text defined in the strings.

How do you align text in layout?

android:gravity="center" for text center in TextView. android:gravity="center_horizontal" inner text if you want horizontally centered. android:gravity="center_vertical" inner text if you want vertically centered. android:layout_centerInParent="true" if you want TextView in center position of parent view.

How do I Auto Resize TextView?

To use preset sizes to set up the autosizing of TextView in XML, use the android namespace and set the following attributes: Set the autoSizeText attribute to either none or uniform. none is a default value and uniform lets TextView scale uniformly on horizontal and vertical axes.

Which is the correct way to reference bound data in the XML layout?

Layout Binding expressions Expressions in the XML layout files are assigned to a value of the attribute properties using the “ @{} " syntax. We just need to use the basic syntax @{} in an assignment expression. Expressions can be used for many purposes depending on your requirement.


1 Answers

You can use the tools attribute to define properties that will appear in the layout preview but will not appear when you run the app.

Add the following to your root view:

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

Then use the tools attribute to define text that will only appear in the layout preview:

tools:text="placeholder text"

The tools attribute is very useful when mocking up views in the editor. All of the tools attributes are stripped when the app is packaged. More information here: http://tools.android.com/tech-docs/tools-attributes

like image 189
blackcj Avatar answered Oct 14 '22 05:10

blackcj