使用weightSum和layout_weight时,如何在LinearLayout元素上设置最小宽度

时间:2016-01-29 09:44:21

标签: android android-linearlayout

我将LinearLayout的孩子的宽度设置为布局的百分比。

在7英寸和10英寸屏幕上显示正常,但在5英寸上,给定百分比产生的宽度对于文本来说太小。

忽略子级的minWidth属性。

如何为孩子设置最小宽度?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_file_seek_bar"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_marginTop="10dp"
    android:weightSum="100"
    android:gravity="center_vertical">

    <TextView
        android:id="@+id/textView_file_playing_time"
        android:layout_width="0dp"
        android:layout_weight="8"
        android:minWidth="100dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ffffff"
        android:text="00:00"
        android:layout_marginLeft="15dp"
    />

    <SeekBar
        android:id="@+id/seek_bar_source_file"
        android:layout_width="0dp"
        android:layout_weight="92"
        android:layout_height="40dp"
        android:indeterminate="false"
    />

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

这应该工作

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_file_seek_bar"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_marginTop="10dp"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:weightSum="100" >

    <TextView
        android:id="@+id/textView_file_playing_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:maxWidth="100dp"
        android:text="00:00"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />
    <SeekBar
        android:id="@+id/seek_bar_source_file"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:layout_weight="92"
        android:indeterminate="false" />
</LinearLayout>

答案 1 :(得分:0)

android:minWidth被忽略导致android:layout_width="0dp"。您可以将单独的布局放入layout-normal目录中,而不使用android:layout_weight参数:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_file_seek_bar"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical">

<TextView
    android:id="@+id/textView_file_playing_time"
    android:layout_width="wrap_content"
    android:minWidth="100dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ffffff"
    android:text="00:00"
    android:layout_marginLeft="15dp"
/>

<SeekBar
    android:id="@+id/seek_bar_source_file"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:indeterminate="false"
/>