android布局:edittext左右移动

时间:2012-12-06 14:53:57

标签: android layout android-edittext

我正在研究计算器,在“屏幕”上,左侧部分显示符号+ - * /,右侧显示数字。符号的大小不能太小,但是当用户按下符号并且符号显示例如+,右边的数字会向右移动一点,以便容纳符号。

右边的数字在有符号时向右移动,而在没有符号时返回到它的位置。此外,符号无法正确显示。这令人沮丧。

然而,我想保持将符号和数字保持在1行内,使其看起来像计算器。怎么办呢?布局代码如下。在此先感谢!!!!

enter image description here

<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>

1 个答案:

答案 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>