android - setVisibility(View.VISIBLE) doesn't show TextView -
i have following layout in res/layout/main.xml
second textview
hidden
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <textview android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="hello"/> <textview android:id="@+id/tv2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="world" android:visibility="gone"/> </linearlayout>
and android activity, should display second textview
public class mainactivity extends activity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); view tv2 = findviewbyid(r.id.tv2); tv2.setvisibility(view.visible); } }
but when activity displayed, first textview
shown.
so, wrong here? how can make second textview
visible programmatically?
although solution embarrassingly simple, took me quite time figure out.
the reason "invisible" element default orientation of linearlayout
. right @ beginning says
class overview
... default orientation horizontal.
both textview
s have width of match_parent
, means first textview occupies whole width of parent. since forgot set orientation
explicitly, second textview layed out right , off screen.
setting orientation
vertical
fixes issue , makes second textview
visible
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ... --> </linearlayout>
Comments
Post a Comment