线性布局空间和权重总和

时间:2014-04-11 20:00:55

标签: android android-layout android-linearlayout screen-size android-layout-weight

我是android的新手,我正在尝试制作一个小型计算器作为概念验证。我面临的问题是;无论我想做什么,我总是在底部留空空间...将我的按钮设置为fill_parent,更改布局权重。我被困了,我想得到一些帮助来弄明白。也许有一些我不想要的东西

这是我的布局:

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#635c59">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#635c59"
            android:layout_margin="0dip"
            android:padding="0dip"
            android:textSize="31dip"
            android:text="3456+8388388"
            android:textColor="#FFF"/>
    </FrameLayout>
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="3">
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:layout_height="wrap_content">
            <Button
                    android:id="@+id/button_mc"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="MC"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_mr"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="MR"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_ms"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="MS"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_mplus"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="M+"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_mminus"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#8000ff"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="M-"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
        </LinearLayout>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_height="wrap_content">
            <Button
                    android:id="@+id/button_del"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="<--"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_ce"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="CE"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_c"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="C"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_negate"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#0099ce"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="+/-"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_sqrt"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#8000ff"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="Sqrt"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

在上面的代码中我拿出了一些部分,因为重复的是按钮ID和颜色的变化。

如你所见,有一个空的空间,我希望我的按钮填充大厅的线性布局。 谢谢你的帮助

4 个答案:

答案 0 :(得分:0)

layout_weightlayout_width设置为layout_height时,

0dp效果很好。在您的情况下,将其更改为以下内容:

android:layout_width="0dp"
android:layout_height="0dp"

答案 1 :(得分:0)

如果您希望展开上面的LinearLayout(带有&#34;#635c59&#34;作为背景的那个),那么您可以使用它执行以下操作:

  • 删除layout_weight
  • 用填充父级替换heigt
  • 用android:layout_gravity =&#34; end&#34;
  • 替换下面的LinearLayout(FrameLayout正下方)的layout_weight

这样会将较低的布局放在底部,并将较高的布局延伸到空间的其余部分,因此会产生灰色背景。

如果你想要按钮扩展,从而填充整个下半部分,那么按住按钮的ListViews的高度可以被android:layout_weight =&#34; 1&#34;替换。将按钮的高度设置为fill_parent将导致它们填充视图的底部。

答案 2 :(得分:0)

// try this way hope this help you 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#635c59">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#635c59"
            android:textSize="31dip"
            android:text="3456+8388388"
            android:textColor="#FFF"/>
    </FrameLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="horizontal"
            android:layout_height="wrap_content">
            <Button
                android:id="@+id/button_mc"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="MC"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_mr"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="MR"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_ms"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="MS"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_mplus"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="M+"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_mminus"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#8000ff"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="M-"
                android:layout_weight="1"
                android:textSize="28dip"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="horizontal"
            android:layout_height="wrap_content">
            <Button
                android:id="@+id/button_del"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="<--"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_ce"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="CE"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_c"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="C"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_negate"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#0099ce"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="+/-"
                android:layout_weight="1"
                android:textSize="28dip"/>
            <Button
                android:id="@+id/button_sqrt"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="#8000ff"
                android:layout_margin="0dip"
                android:padding="0dip"
                android:text="Sqrt"
                android:layout_weight="1"
                android:textSize="28dip"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

答案 3 :(得分:0)

各位大家好,感谢大家的帮助我能够使用每个答案解决问题,我的计算器应用程序就像任何其他计算器都有一个数字键盘和一个显示屏,我希望显示屏采取1 / 4的空间和键盘剩下的就是3/4的空间,所以我创建了两个线性布局,宽度设置为fill_parent,高度为0dip,带有textView的线性布局将权重设置为1,键盘为线性在键盘布局内,我为每一行创建了五个其他线性布局,并为每个行填充了我的按钮,给出了宽度= fill_parent,高度= fill_parent和weight = 1我的按钮占据了大厅空间

如果有人想检查它,这是完整的代码:

<LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:background="#666666">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#666666"
            android:layout_margin="0dip"
            android:padding="0dip"
            android:textSize="31dip"
            android:text="3456+8388388"
            android:textColor="#fe2701"
            android:gravity="bottom|right"/>
    </LinearLayout>
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="3">
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:layout_height="0dip"
            android:layout_weight="1">
            <Button
                    android:id="@+id/button_mc"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="MC"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
            <Button
                    android:id="@+id/button_mr"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="MR"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
            <Button
                    android:id="@+id/button_ms"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="MS"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
            <Button
                    android:id="@+id/button_mplus"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="M+"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
            <Button
                    android:id="@+id/button_mminus"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="M-"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
        </LinearLayout>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_height="0dip"
                android:layout_weight="1">
            <Button
                    android:id="@+id/button_del"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="<--"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_ce"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="CE"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_c"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="C"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_negate"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="+/-"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_sqrt"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="Sqrt"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
        </LinearLayout>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_height="0dip"
                android:layout_weight="1">
            <Button
                    android:id="@+id/button_seven"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="7"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_eight"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="8"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_nine"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="9"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_devide"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="/"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_percent"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="%"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
        </LinearLayout>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_height="0dip"
                android:layout_weight="1">
            <Button
                    android:id="@+id/button_four"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="4"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_five"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="5"
                    android:textSize="28dip"
                    android:layout_weight="1"/>
            <Button
                    android:id="@+id/button_six"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="6"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_mult"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="*"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_inverse"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="1/X"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
        </LinearLayout>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_height="0dip"
                android:layout_weight="1">
            <Button
                    android:id="@+id/button_one"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="1"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_two"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="2"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_three"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="3"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_mimus"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="-"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_equal"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="="
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
        </LinearLayout>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_height="0dip"
                android:layout_weight="1">
            <Button
                    android:id="@+id/button_zero"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="0"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:layout_gravity="center"/>
            <Button
                    android:id="@+id/button_decimal"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="."
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_plus"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="+"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_mimus"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#666666"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="*"
                    android:layout_weight="1"
                    android:textSize="28dip"/>
            <Button
                    android:id="@+id/button_ln"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#363636"
                    android:layout_margin="0dip"
                    android:padding="0dip"
                    android:text="Ln"
                    android:layout_weight="1"
                    android:textSize="28dip"
                    android:textColor="#fe2701"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

这是一个屏幕截图:在此链接上(我没有足够的声誉来上传图片)https://www.dropbox.com/s/gztg5b7ih1f2z6z/layout.png