我正在研究计算器,在“屏幕”上,左侧部分显示符号+ - * /,右侧显示数字。符号的大小不能太小,但是当用户按下符号并且符号显示例如+,右边的数字会向右移动一点,以便容纳符号。
右边的数字在有符号时向右移动,而在没有符号时返回到它的位置。此外,符号无法正确显示。这令人沮丧。
然而,我想保持将符号和数字保持在1行内,使其看起来像计算器。怎么办呢?布局代码如下。在此先感谢!!!!
<TableRow
android:id="@+id/tableRow3"
android:layout_weight="0.1"
android:background="@android:color/white"
android:paddingLeft="0dp"
android:paddingRight="0dp" >
<EditText
android:id="@+id/symEditText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_span="1"
android:background="@android:color/transparent"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="right|center_vertical"
android:inputType="numberDecimal"
android:longClickable="false"
android:maxLength="3"
android:paddingRight="0dp"
android:text=""
android:textColor="#003366"
android:textSize="14dp"
android:textStyle="bold" >
</EditText>
<EditText
android:id="@+id/ansEditText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_span="9"
android:background="@android:color/transparent"
android:clickable="false"
android:ems="4"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="right|center_vertical"
android:inputType="numberDecimal"
android:longClickable="false"
android:maxLength="23"
android:paddingRight="20dp"
android:textColor="#003366"
android:textSize="@dimen/display_text_size"
android:textStyle="bold" >
<requestFocus />
</EditText>
</TableRow>
答案 0 :(得分:0)
您应该只在TableRow
内使用TableLayout
。我认为您可以使用水平LinearLayout
代替。如果要始终保留空格以显示符号,请为该视图指定固定宽度而不是使用wrap_content
,否则在内容更改时会增大/缩小。 (确保以dp为单位指定宽度)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/symbol"
android:layout_width="20dp" <!-- fixed size -->
android:layout_height="wrap_content"
<!-- more attributes -->
</TextView>
<TextView
android:id="@+id/answer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" <!-- fill remaining space -->
android:gravity="right"
<!-- more attributes -->
</TextView>
</LinearLayout>