使用 ViewFlipper 动态调整布局大小

Posted

技术标签:

【中文标题】使用 ViewFlipper 动态调整布局大小【英文标题】:Resizing layouts dynamically with ViewFlipper 【发布时间】:2012-11-25 06:21:10 【问题描述】:

我有一个布局大小问题...

我有一个布局,它由一个 ViewFlipper、一个 LinearLayout(包含一个 MapView)和一个垂直行中的第二个 LinearLayout 组成。

<LinearLayout
    android:
    android: >

    <ViewFlipper
        android:
        android: >
        // Top elements
    </ViewFlipper>

    <LinearLayout
        android:
        android: >
        // MapView
    </LinearLayout>

    <LinearLayout
        android:
        android: >
        // Bottom elements
    </LinearLayout>

</LinearLayout>

我看到的问题是,当我使用 showNext() 或 showPrevious() 更改 ViewFlipper 以显示较短的视图时,中间的 LinearLayout 不会扩展以填充空间。此外,当我更改为较短的视图时,我会看到以前的 ViewFlipper 视图留下的黑色/空白空间。

是否有一种巧妙的方法来动态调整这些元素的大小,以便 MapView 布局将展开以填充 ViewFlipper 和底部 LinearLayout 未占用的所有空间?

【问题讨论】:

你找到解决这个空白的方法了吗? 【参考方案1】:

尝试将android:measureAllChildren="false" 添加到您的 ViewFlipper

<ViewFlipper
     android:
     android:
     android:measureAllChildren="false" >
<!-- Top elements --> 
</ViewFlipper>

【讨论】:

在我们的例子中,即使在 ViewFlipper 与 showPrevious()showNext() 之间导航之后,这也解决了我们的空白问题

以上是关于使用 ViewFlipper 动态调整布局大小的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局动态更改子视图后调整超级视图的大小

自动布局以动态调整 UILabel 大小不起作用

使用自动布局约束动态调整表格视图单元格的大小

动态调整视图大小(拖动运动)时自动布局约束中断

动态调整小部件的内容和布局到用户通过 resize 定义的大小。安卓

在具有自动布局的 UITableViewCell 中动态调整大小的 UIWebView - 违反约束