androidandroid-layoutandroid-layout-weight

Android layout weight doesn't work


I got this layout:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="6sp"
    android:layout_marginLeft="16sp"
    android:layout_marginRight="6sp"
    android:layout_marginTop="6sp" >

    <TextView android:id="@+android:id/title"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceListItem"
        android:inputType="none" />

    <TextView android:id="@+android:id/summary"
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_below="@android:id/title" 
        android:maxLines="2"
        android:layout_width="wrap_content" />

</RelativeLayout>

<!-- Preference should place its actual preference widget here. -->
<!-- android:id="@android:id/widget_frame" -->

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="6sp"
    android:layout_marginLeft="6sp"
    android:layout_marginRight="6sp"
    android:layout_marginTop="10sp"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:weightSum="1" >

    <SeekBar
        android:id="@+id/change_seekbar"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.8"
        android:paddingLeft="20dip"
        android:paddingRight="20dip" >

    </SeekBar>

    <TextView
        android:id="@+id/Text_Box_seek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dip"
        android:textSize="16dip" >
    </TextView>
</LinearLayout>

I want the seek bar to take 80% of the width in the inner linear layout, but the seek bar stays very small.. why won't it take the rest of the space?


Solution

  • Change the layout width of your LinearLayout to match_parent or set a specific value for it.

    Explain If you use LinearLayout width = wrap_content, the width of LinearLayout will depend of the childs.
    And you also set the weight for the childs, so the the width of the child will depend on the parent.
    => (width of parent depend on childs, width of childs depend on parent) then I think the View will don't know what to do