最近刚学android编程,做一个简单计算器练手.
但是发现很多计算器的结果栏都是双行显示的,就是点击等于号后,一行显示运算表达式,一行显示结果,所以也想试着实现,但是发现通过该EditView的属性无法做到(或许没有找到),如果重载控件应该也是可以实现的,但是表示能力不足....
于是想到了FrameLayout中的空间是层叠的,所以就想到把EditText和TextView放到一个FrameLayout中,使得TextView层叠在EditText的上半部分(调整大小使得TextView是EditView的一半),EditText设置显示在Bottom,这样点等于把表达式传递到TextView,结果显示在EditText,由于TextView是透明的,所以看起来就会想是EditText的两行显示.
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/blank1" >
<TextView
android:id="@+id/res"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/res"
android:singleLine="true"
android:ellipsize="start"
android:gravity="bottom|right" />
<EditText
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:ellipsize="start"
android:singleLine="true"
android:gravity="bottom|right"
android:layout_below="@+id/res"
android:text="" />
</FrameLayout>