可以指定android:minHeight与android:layout_width相同

时间:2014-05-19 14:22:03

标签: android android-layout

我有一个xml布局文件用于场地详细信息页面,它指定了几个线性布局,然后是地图视图。每个线性布局都有2 TextViews,一个作为标题,另一个作为细节。页面底部是mapView,显示场地的位置。

在大屏幕/平板电脑上,地图有足够的空间,看起来很好,在较小的屏幕上,例如在手机上,地图被挤进屏幕底部的这个小空间。 我对页面的主要布局感到满意,除了底部的地图。

我想要做的是指定地图的最小高度至少与可用宽度相同dp - 即确保其正方形。如果地图有更多空间填充在屏幕底部 - 即使其成为纵向方形矩形,那么它应该这样做。

编辑:我不想减少LinearLayouts已经动态的大小,因为他们提供的信息实际上是用户想要看到的内容。

下面的伪代码:

<com.google.android.gms.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:minHeight="android:layout_width"
    />

我可以看到可以通过Java代码执行此操作。我还可以看到我可以设置特定大小,例如320dp,但这需要更多努力才能使大小适合多种屏幕尺寸。

这可能仅在xml吗?

2 个答案:

答案 0 :(得分:0)

有时间考虑@confused_at_times所做的评论,我认为事实上问题出在我的活动布局中,而不是xml中的不可用选项。

我选择的解决方案是将地图作为页面的主要元素,标记引脚可以点击,并在点击时显示所有可用的详细信息。

答案 1 :(得分:0)

对于大多数View类型,XML无法实现。

如您所知,它可以在代码中完成,但我一直认为这种类型的功能会非常有用。


但是对于ImageView,您可以使用adjustViewBounds属性完成此类操作,例如,如果您希望在屏幕顶部显示横幅图片,并且您希望它的大小正确。< / p>

下面的XML显示了如何使用该属性:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:scaleType="fitStart"
    android:src="@drawable/big_image" />

第一印象是此图像在高度和高度均为match_parent。宽度即填满屏幕。如果需要,scaleType将允许它更改大小。

诀窍是将adjustViewBounds设置为true

图像被缩放,但视图的下限被提升到新缩放图像的wrap_content

请记住,此方法不会拉伸较小的图像,但会在将较大的图像缩小到较小的屏幕时起作用。