0

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

4 回答 4

0

大家好,谢谢大家的帮助空间和键盘剩余即空间的 3/4,所以我创建了两个线性布局,宽度设置为 fill_parent,高度设置为 0dip,textView 的线性布局设置权重为 1,键盘线性布局设置为重量为 3。在键盘布局中,我为每一行创建了五个其他线性布局,并用我的按钮填充每个布局,给它们一个 width=fill_parent 和一个 height=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

于 2014-04-12T18:16:13.183 回答
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>
于 2014-04-12T04:45:55.583 回答
0

如果您希望上层 LinearLayout(以“#635c59”为背景的那个)展开,那么您可以使用它执行以下操作:

  • 删除 layout_weight
  • 用填充父级替换高度
  • 用 android:layout_gravity="end" 替换下部 LinearLayout(FrameLayout 正下方)的 layout_weight

这会将下部布局放置在底部,并将上部布局扩展到空间的其余部分,因此背景为灰色。

如果您希望按钮展开从而填充整个下部,则可以将持有按钮的 ListView 的高度替换为 android:layout_weight="1"。将按钮的高度设置为 fill_parent 将导致它们填充视图的底部。

于 2014-04-11T20:43:51.603 回答
0

layout_weight当您设置layout_widthlayout_heightto时效果很好0dp。在您的情况下,将其更改为以下内容:

android:layout_width="0dp"
android:layout_height="0dp"
于 2014-04-11T20:32:51.073 回答