自定义警报按钮重叠

时间:2014-03-02 18:26:07

标签: android

好的,我成功创建了一个自定义警报,当我运行它时,格式与xml相同,但在第n次重新运行后,按钮突然重叠,我不知道如何修复它所以你能帮忙吗我出来了吗?。

alert.xml(输出应该是):
 enter image description here

输出错误:
enter image description here

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>

5 个答案:

答案 0 :(得分:1)

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

android:layout_alignParentLeft="true"

之后应该没问题。

编辑:不只是左对齐指令,而是所有对齐指令。

答案 1 :(得分:1)

按如下方式组织每一行......

 <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" />

答案 2 :(得分:1)

我建议您使用 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>

答案 3 :(得分:0)

分析后,我能看到什么是错的。
 这个

<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" />

答案 4 :(得分:0)

我会做这样的事情:

<?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