我在处理程序中隐藏了一个按钮(这是在我使其在应用程序的另一种状态下可见之后)。处理程序从正在运行的线程接收消息,然后更新 GUI。
问题是附近的(不是全部)按钮和 TextView 也从屏幕上消失了。我正在使用相对布局。
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget54"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnFold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Fold"
android:visibility="invisible"/ >
<Button
android:id="@+id/btnRaise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/btnFold"
android:text="Raise"
android:visibility="invisible"/>
<Button
android:id="@+id/btnCall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/btnRaise"
android:text="Call"
android:visibility="invisible" />
<TextView
android:id="@+id/txtFlopTurnRiver"
android:layout_width="135dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text=" " />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/btnCall"
android:layout_toLeftOf="@+id/btnCall"
android:text="Chip amount:" />
<TextView
android:id="@+id/txtHand1"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_above="@+id/textView1"
android:layout_centerHorizontal="true"
android:text=" " />
<Button
android:id="@+id/btnDeal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="@string/deal_deck"
android:visibility="invisible" />
<Button
android:id="@+id/btnRiver"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@+id/btnDeal"
android:text="River"
android:visibility="invisible" />
<TextView
android:id="@+id/txtHand2"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_above="@+id/txtHand1"
android:layout_toLeftOf="@+id/btnRaise"
android:text=" " />
<TextView
android:id="@+id/txtHand3"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/btnRaise"
android:layout_centerVertical="true"
android:text=" " />
<TextView
android:id="@+id/txtHand8"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_above="@+id/txtHand1"
android:layout_alignLeft="@+id/btnRiver"
android:text=" " />
<TextView
android:id="@+id/txtHand6"
android:layout_width="73dp"
android:layout_height="21dp"
android:layout_above="@+id/txtFlopTurnRiver"
android:layout_alignLeft="@+id/txtHand8"
android:layout_marginBottom="26dp"
android:text=" " />
<TextView
android:id="@+id/txtHand4"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/txtHand6"
android:layout_alignBottom="@+id/txtHand6"
android:layout_toLeftOf="@+id/btnRaise"
android:text=" " />
<TextView
android:id="@+id/txtHand5"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_above="@+id/txtHand4"
android:layout_alignLeft="@+id/txtHand1"
android:layout_marginBottom="14dp"
android:text=" " />
<TextView
android:id="@+id/txtHand7"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/txtHand3"
android:layout_alignBottom="@+id/txtHand3"
android:layout_alignRight="@+id/btnRiver"
android:layout_marginRight="26dp"
android:text=" " />
<TextView
android:id="@+id/txtChipAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_toLeftOf="@+id/btnCall"
android:layout_toRightOf="@+id/txtHand1"
android:text="103360" />
有谁知道可能导致问题的原因是什么?
btnFold = (Button)findViewById(R.id.btnFold);
btnFold.setVisibility(View.GONE);
最佳答案
现在我看到了您的完整 xml - 当您将 View
设置为 GONE
时,相对于它设置的 View (layout_toLeftOf
, layout_above
) 被放置在左上角(或者它们的其他约束放置它们的任何地方,例如 toLeftOf
并且对齐父底部的 View 现在将转到屏幕的左下角(它没有什么是 toLeftOf
并且在底部)。如果您只想隐藏 View
,我建议设置 View.INVISIBLE
,而不是 View.GONE
除非你有特定的原因?
关于android - setVisibility 也隐藏附近的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713636/