Android - 一键变成两个

时间:2017-10-13 00:34:07

标签: android button android-activity

如何创建三个按钮,只显示第一个按钮,一旦点击它就会被它旁边的两个并排按钮取代?这些按钮应居中。

First button

Two buttons that appear once the entered button is pressed

这是我到目前为止所做的:

<Button
            android:id="@+id/enter_button"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:padding="5dp"
            android:text="@string/enter_button"
            android:textColor="#FFFFFF" />


    </LinearLayout>

    <LinearLayout
        android:id="@+id/buttons_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="horizontal"
        android:padding="30dp" >

        <Button
            android:id="@+id/clear_button"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:text="@string/clear_button"
            android:textColor="#FFFFFF" />

        <Button
            android:id="@+id/reserve_button"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:padding="5dp"
            android:text="@string/reserve_button"
            android:textColor="#FFFFFF" />

    </LinearLayout>

但是这会导致两个并排按钮出现在第一个按钮之下(而不是直接在它上面)。我已经知道如何使用setVisibility使enter按钮消失。

2 个答案:

答案 0 :(得分:0)

很简单。 父元素可能是linearlayout。将它更改为framelayout或添加一个如果它们在根元素下,它应该工作。

祝你好运。

答案 1 :(得分:0)

将所有3个按钮放在一个水平线性布局中,如下所示:

<LinearLayout
    android:id="@+id/buttons_layout"
    android:layout_width="368dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal"
    android:padding="30dp"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="0dp">

    <Button
        android:id="@+id/enter_button"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:padding="5dp"
        android:text="Enter"
        android:textColor="#FFFFFF" />

    <Button
        android:id="@+id/clear_button"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:text="@string/clear_button"
        android:textColor="#FFFFFF" 
        android:visibility="gone"/>

    <Button
        android:id="@+id/reserve_button"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:padding="5dp"
        android:text="@string/reserve_button"
        android:textColor="#FFFFFF"
        android:visibility="gone"/>

</LinearLayout>

最后两个按钮的可见性应为“Gone”,单击“enter button”,将其可见性设置为“Visible”,“enter”应设置为“Gone”。

对于按钮居中,问题在于您正在使用布局重力。相反,你应该使用重力来居中儿童(见上面的代码)。

注意:不要使用setVisibility(Invisible),请使用setVisibility(Gone)