Android - 线性布局重量

时间:2016-01-18 19:21:14

标签: android android-linearlayout horizontalscrollview android-layout-weight

enter image description here

此视图是日历的表示。

在这个布局中,我在Horizo​​ntalScrollView中有一个LineaerLayout,而在LinearLayout内部,它们是很多TextView。 我将min width设置为TextView,因为在纵向位置没有太多空间,我不想看到7个超级小TextView,我更喜欢4个TextView中等大小。

enter image description here

当我旋转到横向位置时,我想只看到7个具有相同宽度的TextView并滚动其他,但我无法达到。

抱歉我的英语不好。这是XML。

<HorizontalScrollView
    android:id="@+id/scroll_dias"
    android:layout_below="@+id/header2"
    android:layout_toRightOf="@+id/tv_etiqueta_hora"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="1dp"
    android:fillViewport="true"
    android:scrollbars="none">


    <LinearLayout
        android:id="@+id/contenedor_dias"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="7">
    </LinearLayout>

</HorizontalScrollView>

膨胀的textview以编程方式添加到LinearLayout

<TextView
    android:id="@+id/tv_item_dia"
    android:layout_width="60dp"
    android:layout_height="32dp"
    android:layout_marginRight="1dp"
    android:layout_weight="1"
    android:background="#3f7668"
    android:gravity="center"
    android:padding="8dp"
    android:text="Día "
    android:textColor="#fff"
    android:textSize="12dp"
    android:textStyle="bold" />

enter image description here

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用GridLayout?使用GridLayout,您可以在任何时间点限制屏幕上显示的行数和列数。

除此之外,您还可以针对不同的屏幕宽度使用不同的布局。您可以将窄(4列)布局放入layout文件夹,然后将宽布局(7列)放入layout-sw600dp文件夹。一旦你这样做,Android将根据屏幕的当前宽度(即纵向与横向或平板电脑与手机)自动选择正确的布局。