【问题标题】:Android - Linear layout weightAndroid - 线性布局权重
【发布时间】:2016-01-18 19:21:13
【问题描述】:

此视图是日历的表示。

在这个布局中,我在 Horizo​​ntalScrollView 内部有一个 LineaerLayout,在 LinearLayout 内部有很多 TextView。 我将最小宽度设置为TextView,因为纵向位置没有太多空间,我不想看到7个超小的TextView,我更喜欢设置4个TextView中号。

当我旋转到横向位置时,我只想看到 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
    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" />

【问题讨论】:

  • 如果您想在屏幕上放置一个具有特定权重的LinearLayout 并水平滚动以在每个步骤中显示 7 个TextView,为什么不使用ViewPager 而不是HorizontalScrollView?
  • 我不想在纵向显示 7 个 TextView 因为太小了,当我旋转到横向时我只想显示 7 个,而不是更多或更少
  • 是的,抱歉,我的问题可能不清楚。我的意思是ViewPager 可以是你的容器,页面可以显示TextViews。在纵向页面中,每个页面将包含 4 个 TextViews,而在横向页面中,页面将连续包含 7 个 TextViews。也许这不是您所期望的,但在这种情况下,HorizontalScrollView 的使用对我来说看起来很奇怪,因为这将允许您在里面只包含一个 LinearLayout(所以不超过 4 或 7 个 TextViews),而到目前为止据我了解,您想水平滚动以显示其他日子。
  • 加权尺寸必须精确测量 0dp,才能使权重起作用。而weightSum 是完全可选的(它是自动计算的)。
  • 如果您有一个权重总和为 2 的 LinearLayout,并且内部有 3 个权重为 1 的 Textview,则只会显示 2 个,而另一个将离开屏幕并可以滚动。那么为什么 mi view 不起作用?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2017-06-13
    • 2015-04-15
    相关资源
    最近更新 更多