How do I automatically `layout_below` sequential controls in an Android layout? -
i seem make android layouts have series of controls meant sit 1 below other. example
<relativelayout     android:layout_width="wrap_content"     android:layout_height="wrap_content">      <textview         android:id="@+id/a"/>      <textview         android:id="@+id/b"         android:layout_below="@+id/a"/>      <textview         android:id="@+id/c"         android:layout_below="@+id/b"/>      <textview         android:id="@+id/d"         android:layout_below="@+id/c"/>      <textview         android:id="@+id/e"         android:layout_below="@+id/d"/>  </relativelayout> the android:layout_below attributes necessary: without them textviews bunch in same place.
they also, usually, redundant , general source of bugs , tedium. control ids change, controls added , removed, of these strings must edited match properly. illustrate general redundancy of scheme, note how promotes sort of spaghetti:
<relativelayout     android:layout_width="wrap_content"     android:layout_height="wrap_content">      <textview         android:id="@+id/e"         android:layout_below="@+id/d"/>      <textview         android:id="@+id/b"         android:layout_below="@+id/a"/>      <textview         android:id="@+id/d"         android:layout_below="@+id/c"/>      <textview         android:id="@+id/a"/>      <textview         android:id="@+id/c"         android:layout_below="@+id/b"/>  </relativelayout> i can see how explicit layout_below directives (and friends such layout_above) useful in circumstances. there no way of configuring layout (e.g. relativelayout) assume each control in series contains should automatically layout_below preceding control?
linearlayout might more suitable kind of ui structure. need, , automatically you. have specify android:orientation can either vertical or horizontal.
more information on linearlayout can found here.
all children of linearlayout stacked 1 after other, vertical list have 1 child per row, no matter how wide are, , horizontal list 1 row high (the height of tallest child, plus padding).
here's quick example:
<linearlayout   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:orientation="vertical">    <textview     android:id="@+id/text_view_a"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="hey, i'm textview a!"/>    <textview     android:id="@+id/text_view_b"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="hey, i'm textview b!"/>    <textview     android:id="@+id/text_view_c"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="hey, i'm textview c!"/>    <!-- ..and on. -->  </linearlayout> 
Comments
Post a Comment