0

「画面」の左側に記号 + - * / が表示され、右側に数字が表示される電卓に取り組んでいます。記号のサイズを小さくしすぎることはできませんが、ユーザーが記号を押して記号が + を示すと、記号に合わせて右側の数字が少し右に移動します。

右側の図は、シンボルがある場合は右に移動し続け、シンボルがない場合は元の位置に戻ります。また、シンボルが正しく表示されません。これはイライラします。

それでも、実際に電卓のように見えるように、記号と数字が 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>
4

1 に答える 1

0

TableRow内でのみ使用してくださいTableLayoutLinearLayout代わりに水平を使用できると思います。シンボルを表示するスペースを常に維持したい場合は、 を使用する代わりにそのビューに固定幅を与えて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>
于 2012-12-06T16:01:03.347 に答える