I have a glsurface occupying the full screen. At the click of a button I want another layout to appear (settings type of thing). If I start with the overlay being visible, I can make it invisible and then visible again with no problem. But if I start with it invisible, I cannot make it ever visible again. Code follows:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.opengl.GLSurfaceView android:id="@+id/glPlaySurface" android:layout_width="match_parent" android:layout_height="match_parent" > </android.opengl.GLSurfaceView> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:orientation="horizontal" > <RadioButton android:id="@+id/btnRotate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:checked="true" android:text="R" android:textColor="#000" /> <RadioButton android:id="@+id/btnPan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:text="P" android:textColor="#000" /> </RadioGroup> <Button android:id="@+id/btnLights" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginLeft="15dp" android:layout_toRightOf="@+id/radioGroup1" android:text="Lights" /> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layoutLights" android:layout_width="100dp" android:layout_height="100dp" android:visibility="visible" <--- Does not work if set to invisible android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:background="#fff" > <Button android:id="@+id/btnLightsOK" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginLeft="15dp" android:text="OK" /> <Button android:id="@+id/btnLights" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginLeft="15dp" android:text="OK" /> </RelativeLayout> </RelativeLayout> private OnClickListener mOnLightsClick = new OnClickListener() { public void onClick(View arg0) { if(mLayoutLights.getVisibility() == View.VISIBLE) { mLayoutLights.setVisibility(View.INVISIBLE); } else { mLayoutLights.setVisibility(View.VISIBLE); } } };
use setVisibility method. for hiding button you can use button. setVisibility(View. GONE);.. you can use View.
try that setVisible(0) to visible true . and setVisible(4) to visible false. the text can be invisible but the button and datepicker no.
When a View is gone, it means it doesn't take any space in the layout. When it is invisible, it will take the necessary room in a layout but you just don't see it.
Had similar error but it was due to my silly mistake of not using the UiThread.
Activity act = (Activity)context; act.runOnUiThread(new Runnable(){ @Override public void run() { mLayoutLights.setVisibility(View.VISIBLE); } });
Got it. You have to set the visibility of all the items in the layout, not just the layout. So this code worked:
if (mLayoutLights.getVisibility() == View.VISIBLE) { ((Button) findViewById(R.id.btnLightsOK)).setVisibility(View.GONE); ((Button) findViewById(R.id.btnLightsCnc)).setVisibility(View.GONE); mLayoutLights.setVisibility(View.GONE); } else { mLayoutLights.setVisibility(View.VISIBLE); ((Button) findViewById(R.id.btnLightsOK)).setVisibility(View.VISIBLE); ((Button) findViewById(R.id.btnLightsCnc)).setVisibility(View.VISIBLE); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With