2012-07-29 27 views
1

Im隐藏一个处理程序内的按钮(这是我已经使其可见在另一个应用程序的状态之后)。处理程序从正在运行的线程接收消息,然后更新GUI。setVisibility隐藏附近的对象以及

问题是,附近(不是全部)按钮和textviews也消失在屏幕上..我使用相对布局。

布局:

<?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); 
+0

做什么你的意思是消失,靠近边缘并被推离屏幕?简单地让一个对象可见,不应该让任何其他对象不可见或消失。 – Sam 2012-07-29 22:50:56

+0

您是否在xml代码中将折叠按钮的右侧或左侧放置了其他任何元素? Shoudln't不是一个问题,但它可能 – 2012-07-29 23:04:59

+0

嗨山姆抱歉有点不清楚。按钮“btnFold”在我的应用中的某个时刻可见。我想通过设置View.Gone来再次隐藏它。这样做使得此Button上方的TextView和此Button左侧的TextView消失。我将尝试更改模拟器的屏幕大小,以查看它们是否弹出到其他位置。 – Vern 2012-07-29 23:06:09

回答

3

现在,我看到您的完整的XML - 当您设置一个ViewGONE,观点,即相对于它设置(layout_toLeftOflayout_above)被放在左上角(或是其他地方,他们其他方面的限制使他们,例如一个视图是toLeftOf,并且对齐的父级底部现在会进入屏幕的左下角(它没有任何内容可以是toLeftOf,并且位于底部)。如果您只想隐藏View而不是View.GONE,我建议设置View.INVISIBLE你有一个具体的原因呢?

1

只是想要隐藏你想隐藏的按钮用

<LinearLayout 
android:id="@+id/LLid" 
android:layout_alignParentRight="true" 
android:layout_width="wrap_content" 
.... 
> 

</LinearLayout> 

,并且所有的layout_toLeftOf到的LinearLayout(LLID)

后您定义的可见性:去你的按钮,并与setVisibility告诉他们(VIEW.VISIBLE)