【问题标题】:LinearLayout horizontal exceeds small screenLinearLayout 水平超小屏
【发布时间】:2013-06-26 08:03:28
【问题描述】:

我有两个并排的 DatePicker。 它在大屏幕上运行良好,但是当我在较小的设备上运行我的应用程序时,我只看到第一个,另一个被截断。

当屏幕上没有足够的空间时,我希望第二个 DatePicker 被淹没在第一个的底部。

是否可以避免以编程方式并在 XML 文件中执行?

这是我的代码片段。它嵌套在另一个 LinearLayout 中。

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >

        <DatePicker
            android:id="@+id/date_start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:calendarViewShown="false" />

        <DatePicker
            android:id="@+id/date_end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:calendarViewShown="false" />
    </LinearLayout>

【问题讨论】:

    标签: android width screen android-linearlayout


    【解决方案1】:

    您可以在res 中创建一个文件夹layout-large 并将此代码移到那里。然后,您可以将此代码更改为您希望在较小屏幕上显示的方式。在大屏幕上,您的应用将使用 layout-large,而在小屏幕上使用 layout 文件夹

    您只需更改此代码以使用 verticalorientation 并可能根据它在较小屏幕上的显示方式调整其他一些属性。

    Using Layout qualifiers

    仅供参考,LinearLayout 默认具有horizontalorientation,因此不需要该属性但也不会造成伤害。我只想指出这一点,因为将来知道它可能会很有用。

    【讨论】:

    • 我希望有一种方法可以仅在一个布局文件中使用特定属性进行动态处理。但是这个解决方案非常有效,谢谢!
    • 不,您不能在运行时更改您的 xml,所以这是要走的路。另外,如果您有其他 layouts 有类似问题,它会很有用。很高兴我能帮上忙
    【解决方案2】:

    你可以使用FlowLayout,它不是sdk默认的,但是有人已经开发了,看看: https://github.com/ApmeM/android-flowlayout

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多