如何实现这种类型的屏幕布局?

时间:2013-12-20 16:37:58

标签: android android-layout

Calculator

我几乎已经完成了视图,但问题来自于我放了“=”按钮。 我已经为每一行使用了6个线性布局“水平”。

但我无法弄清楚,“=”如何占用两个布局的空间! 怎么可能实现?

例如,为了使我的问题更清楚,要实现0按钮,我可以指定它的空间!但是想不出“=”按钮的任何东西!

或者我应该将以M-开头的垂直列声明为“垂直”的线性布局? 但接下来又出现了另一个问题!该布局如何只占整个屏幕的10%?

提前致谢:)

这是我的代码!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

 <LinearLayout 
    android:orientation = "horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center">
    <Button
        android:id="@+id/bBackspace"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/backspace"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/bCE"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/CE"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/bClear"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/clear"
        android:onClick="onButtonPress"
    />  
    <Button
        android:id="@+id/bSign"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/sign"
        android:onClick="onButtonPress"
    /> 
</LinearLayout>

<LinearLayout 
    android:orientation = "horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center">
    <Button
        android:id="@+id/b7"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/seven"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/b8"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/eight"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/b9"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/nine"
        android:onClick="onButtonPress"
    />  
    <Button
        android:id="@+id/bDiv"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/div"
        android:onClick="onButtonPress"
    /> 
</LinearLayout>

<LinearLayout 
    android:orientation = "horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center">
    <Button
        android:id="@+id/b4"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/four"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/b5"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/five"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/b6"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/six"
        android:onClick="onButtonPress"
    />  
    <Button
        android:id="@+id/bMul"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:onClick="onButtonPress"
        android:text="@string/mul"
    /> 
</LinearLayout>

<LinearLayout 
    android:orientation = "horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center">
    <Button
        android:id="@+id/b1"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:onClick="onButtonPress"
        android:text="@string/one"
    />
      <Button
        android:id="@+id/b2"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/two"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/b3"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/three"
        android:onClick="onButtonPress"
    />  
    <Button
        android:id="@+id/bSub"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:text="@string/sub"
        android:onClick="onButtonPress"
    /> 
</LinearLayout>

<LinearLayout 
    android:orientation = "horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center">
      <Button
        android:id="@+id/b0"
        android:layout_height="fill_parent"
        android:layout_width="110dp"
        android:text="@string/zero"
        android:onClick="onButtonPress"
    />
      <Button
        android:id="@+id/bPoint"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:onClick="onButtonPress"
        android:text="@string/point"
    />
      <Button
        android:id="@+id/bAdd"
        android:layout_height="fill_parent"
        android:layout_width="55dp"
        android:onClick="onButtonPress"
        android:text="@string/add"
    />   
</LinearLayout>

<LinearLayout 
    android:orientation = "horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center">
      <Button
        android:id="@+id/bEquals"
        android:layout_height="fill_parent"
        android:layout_width="110dp"
        android:text="@string/equals"
        android:onClick="onButtonPress"
    />

</LinearLayout>

1 个答案:

答案 0 :(得分:2)

请改用TableLayout。它与HTML表格的工作方式相同:您可以指定某些单元格以覆盖多个列或行。

您将使用以下内容:android:layout_span="2"