如何创建三个按钮,只显示第一个按钮,一旦点击它就会被它旁边的两个并排按钮取代?这些按钮应居中。
这是我到目前为止所做的:
<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按钮消失。
答案 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)