android - setVisibility 也隐藏附近的对象

标签 android

我在处理程序中隐藏了一个按钮(这是在我使其在应用程序的另一种状态下可见之后)。处理程序从正在运行的线程接收消息,然后更新 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/

相关文章:

java - Android 亚行 : pull to memory

android - 在启动服务时显示 ProgressDialog

java - 类创建性能影响

android - NSURLSession 等同于 Android?

android - 无法以编程方式为 Android 4.1 添加日历事件

android - 在 Visual Studio 中为 Xamarin.Form 应用程序生成 Release APK 时出现问题

android - 如何停止滚动画廊?

java - Android中如何设置图片目录名?

java - Tomcat 在处理带有身份验证 header 的 android 请求之前发送 400s

java - 数组中的 Firebase 数据检索