The Android UI has come a long way over the years. Particularly with the release of the Holo themes, a great number of widgets that previously felt clunky and dated suddenly became streamlined and sexy.
However, one case where I did not totally agree with the direction Google chose to take the UI in is that of the EditText widget. While I agree when editing a single line of text the Holo-themed EditText widget is a great use of screen real estate, when the component is set to multi-line, I think it fails to clue the user in.
To see what I mean, let’s take a look at a standard EditText xml layout.
I’m giving the user eight lines of text to play with, and when the widget is rendered on Éclair (API 10), that’s pretty obvious (Figure A).
Run that same code on Honeycomb (API 11) or better though, and it’s not as clear (Figure B).
Who knows, maybe I just think better inside the box (get it?), but except for the awful orange I preferred the pre-Holo look for the EditText view.
Luckily, there are a couple of quick, painless ways to add bounding to a multi-line EditText widget. The first is as easy as setting the background color and adding a bit of padding (Figure C).
If you want something a little fancier, try creating a simple XML shape in your /drawable folder.
Then point your EditText background to your drawable (Figure D).
At the end of the day, the Android platform gives developers guidance and freedom, and the UI widgets are no exception. If you find the cues provided by the out-of-the-box elements are leaving your users scratching their heads, by all means don’t be afraid to experiment. Subtle tweaks are often all that are required and, as you can see from the examples above, the effort is pretty minimal.