我在列表视图中使用RelativeLayout时遇到了问题。如果我将布局更改为线性等,我会看到它的行为与我预期的一样,但RelativeLayout将所有内容都压缩到重叠的空间中。现在我未经验证的猜测是,它试图将所有内容都塞进一行。我认为它会扩展该行,但可能不会,或者这不是问题所在。
注意我的代码是为了空格而缩写的。
无论如何,在我的父XML中:
<LinearLayout ..._width="fill_parent" ..._height="fill_parent" ...orientation="vertical" >
<ListView ...layout_width="fill_parent" ...layout_height="fill_parent" />
</LinearLayout>
所以我的想法是这将填充设备屏幕,在Eclipse的GraphicalLayout视图中看起来确实如此。
我对ListView的“行”定义如下:
<RelativeLayout width="fill_parent" height="fill_parent" >
<ImageView
android:layout_width="60dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_marginTop="15dp"
android:layout_marginLeft="5dp" />
.....
</RelativeLayout>
如前所述,我以为这将填充所有可用空间,但它似乎只填充某种“默认”行高?
我错过了什么?
3条答案
按热度按时间jdgnovmf1#
使用这布局属性
layout-above
,layout-below
,layout-toRightOf
,layout-toLeftOf
在你的xml.那方法这项目将被放在旁边到你想要他们去的地方.现在你正在设置每件事物根据这父所以他们全部将到重叠k10s72fa2#
默认情况下,
RelativeLayout
添加定位到布局左上角的子对象。通过使用
RelativeLayout
的非常方便的属性,您可以将两个子对象一米二英寸一x、一米三英寸一x、一米四英寸一x、一米五英寸一x、一米六英寸一x、一米七英寸一x、一米八英寸一x、一米九英寸一x、一米十英寸一x、一米十一英寸一x、一米十二英寸一x
这些属性将帮助您以一种非常有效(平面)的方式获得所需的显示,因此我建议继续阅读它,并考虑使用它而不是其他布局容器来显示复杂视图。
sf6xfgos3#
最后我重写了ArrayAdapter的getView,然后将高度和宽度设置为动态确定的屏幕大小
剪
剪