繁体   English   中英

自定义提醒按钮重叠

[英]Custom Alert button overlapping

好的,我成功创建了一个自定义警报,当我运行它时,其格式与xml中的相同,但是在第n次重新运行它之后,按钮突然重叠了,我不知道如何解决它,所以请您帮帮我这个?。

alert.xml(输出应为):
在此处输入图片说明

错误的输出:
在此处输入图片说明

xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="#595959">
    <EditText
        android:id="@+id/orderQuantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/b3"
        android:background="#FFFFFF"
        android:ems="10"
        android:inputType="number" />

     <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/b4"
        android:layout_alignParentLeft="true"
        android:text="1" />

     <Button
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/orderQuantity"
        android:layout_toRightOf="@+id/b4"
        android:text="2" />
       <Button
        android:id="@+id/b3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/b4"
        android:layout_centerHorizontal="true"
        android:text="3" />
     <Button
        android:id="@+id/b4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/b2"
        android:text="4" />

    <Button
        android:id="@+id/b5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b2"
        android:layout_toLeftOf="@+id/b3"
        android:text="5" />

    <Button
        android:id="@+id/b6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/b5"
        android:layout_alignBottom="@+id/b5"
        android:layout_alignLeft="@+id/b3"
        android:text="6" />

    <Button
        android:id="@+id/b7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b4"
        android:layout_toLeftOf="@+id/b5"
        android:text="7" />

    <Button
        android:id="@+id/b8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b4"
        android:layout_toRightOf="@+id/b4"
        android:text="8" />

    <Button
        android:id="@+id/b9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/b6"
        android:layout_below="@+id/b6"
        android:text="9" />

    <Button
        android:id="@+id/b0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b8"
        android:layout_toLeftOf="@+id/b9"
        android:text="0" />

    <Button
        android:id="@+id/addCart"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/b0"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/b7"
        android:layout_toLeftOf="@+id/b0"
        android:text="ADD" />

    <Button
        android:id="@+id/cancel"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/b0"
        android:layout_alignRight="@+id/b9"
        android:layout_below="@+id/b9"
        android:layout_toRightOf="@+id/b0"
        android:text="BACK" />


</RelativeLayout>

使用LinearLayout而不是RelativeLayout。 并删除这些按钮:

android:layout_alignParentLeft="true"

之后应该没问题。

编辑:不仅左对齐指令,而且所有对齐指令。

如下组织每一行...

 <Button
     android:id="@+id/b1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_above="@+id/b4"
     android:layout_alignParentLeft="true"
     android:text="1" />

 <Button
     android:id="@+id/b2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/orderQuantity"
     android:layout_toLeftOf="@+id/b3"
     android:layout_toRightOf="@+id/b1"
     android:text="2" />

 <Button
     android:id="@+id/b3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_above="@+id/b4"
     android:layout_toRightOf="@+id/b2"
     android:layout_centerHorizontal="true"
     android:text="3" />

我建议您使用TableLayout ...非常易于理解,非常适合您想要的东西,并且易于重用或以后修改...您的代码...

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <EditText
            android:id="@+id/orderQuantity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignRight="@+id/b3"
            android:background="#FFFFFF"
            android:ems="10"
            android:inputType="number" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="1" />

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="2" />

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="3" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="4" />

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="5" />

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="6" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1" 
            android:text="7"/>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1" 
            android:text="8"/>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="9" />
    </TableRow>


    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1" 
            android:text="Add"/>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1" 
            android:text="0"/>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1" 
            android:text="OK"/>
    </TableRow>

</TableLayout>

确定分析后,我能够看到出了什么问题。
这个

<Button
        android:id="@+id/b3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/b4"
        android:layout_centerHorizontal="true"
        android:text="3" />

应该 :

 <Button
        android:id="@+id/b3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/b4"
        android:text="3" />

我会做这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:background="#595959">
    <EditText
            android:id="@+id/orderQuantity"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignRight="@+id/b3"
            android:background="#FFFFFF"
            android:ems="10"
            android:inputType="number"/>

    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
                  android:orientation="horizontal"
                  android:weightSum="1">

        <Button
                android:id="@+id/b1"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="1"/>

        <Button
                android:id="@+id/b2"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="2"/>
        <Button
                android:id="@+id/b3"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="3"/>

    </LinearLayout>
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
                  android:orientation="horizontal"
                  android:weightSum="1">

        <Button
                android:id="@+id/b4"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="4"/>

        <Button
                android:id="@+id/b5"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="5"/>
        <Button
                android:id="@+id/b6"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="6"/>

    </LinearLayout>
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
                  android:orientation="horizontal"
                  android:weightSum="1">

        <Button
                android:id="@+id/b7"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="7"/>

        <Button
                android:id="@+id/b8"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="8"/>
        <Button
                android:id="@+id/b9"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="9"/>

    </LinearLayout>
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
                  android:orientation="horizontal"
                  android:weightSum="1">
        <Button
                android:id="@+id/b0"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="0"/>

        <Button
                android:id="@+id/addCart"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="ADD"/>

        <Button
                android:id="@+id/cancel"
                android:layout_width="0dp"
                android:layout_weight=".3333"
                android:layout_height="match_parent"
                android:text="BACK"/>
    </LinearLayout>

</LinearLayout>

Dial_portrait

Dial_landscape

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM