使用View.GONE时,RelativeLayout可见性不起作用

时间:2012-01-03 03:54:28

标签: java android xml layout view

我有一个父RelativeLayout,其中包含其他视图和其他相对布局。当我尝试使其中一个RelativeLayouts具有GONE可见性时,它就不会消失。对此有何解决方案?我将发布我想要的布局GONE

<RelativeLayout android:id="@+id/relativeLayerA"
     android:layout_width="315px"
     android:layout_height="35px"
     android:background="@drawable/bgnavyblue_abcd"
     android:layout_below="@id/relativeConfig1"
     android:layout_toRightOf="@id/relativeRecipe"
     android:layout_marginLeft="15px"
     android:layout_marginTop="20px"
     >                 

     <ImageView android:id="@+id/imgIconA"
         android:layout_width="33px"
         android:layout_height="33px"                                            
         android:src="@drawable/icon_a"
         android:layout_alignParentLeft="true" <!--  -->
         />

     <TextView android:id="@+id/txtLayerA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/layer_a_adjusts"
        android:textSize="7pt"
        android:textColor="#FEFEFE"
        android:typeface="sans"
        android:layout_toRightOf="@id/imgIconA"
        android:layout_marginLeft="5px"
        android:layout_marginTop="8px"               
        />
</RelativeLayout>

以下是整个代码:http://pastebin.com/VhpWSa6Z 拜托,有谁知道发生了什么事?

编辑:有人说这可能会发生,因为其他View正在使用此视图将自己定位在屏幕上。所以我尝试将GONE可见性设置为RelativeLayerC。它奏效了。我不明白为什么它适用于这个View,而不是RelativeLayerA。在这里,您可以使用RelativeLayerC作为参考来查看RelativeConfig4。 http://pastebin.com/uHW6faPy

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题..我认为这是一个bug .. :( 你可以绕过它..尝试这样使RelativeLayout不可见。

RelativeLayout rLayout=(RelativeLayout) findViewById(R.id.//your relativeLayout id);
RelativeLayout.LayoutParams rParams = new RelativeLayout.LayoutParams(
    0, // its height... set it 0 to make it invisible..
    RelativeLayout.LayoutParams.FILL_PARENT // and its width
);
rLayout.setLayoutParams(rParams);

这使它可见。

RelativeLayout.LayoutParams rParams = new RelativeLayout.LayoutParams(
                        RelativeLayout.LayoutParams.FILL_PARENT, 
                        RelativeLayout.LayoutParams.FILL_PARENT); 

rLayout.setLayoutParams(rParams);

以下是xml中RelativeLayout的正确参数。

<RelativeLayout
    android:id="@+id/rLayout"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:background="#AA000000" >

记住!不要用这个。

android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"

或左,右..否则它将无法工作..!

希望有所帮助。