android 列表视图中的相对布局

elcex8rz  于 2023-03-16  发布在  Android
关注(0)|答案(3)|浏览(160)

我在列表视图中使用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>

如前所述,我以为这将填充所有可用空间,但它似乎只填充某种“默认”行高?
我错过了什么?

jdgnovmf

jdgnovmf1#

使用这布局属性layout-abovelayout-belowlayout-toRightOflayout-toLeftOf在你的xml.那方法这项目将被放在旁边到你想要他们去的地方.现在你正在设置每件事物根据这父所以他们全部将到重叠

k10s72fa

k10s72fa2#

默认情况下,RelativeLayout添加定位到布局左上角的子对象。
通过使用RelativeLayout的非常方便的属性,您可以将两个子对象

  • 相对于彼此,以及
  • 相对于父视图。

一米二英寸一x、一米三英寸一x、一米四英寸一x、一米五英寸一x、一米六英寸一x、一米七英寸一x、一米八英寸一x、一米九英寸一x、一米十英寸一x、一米十一英寸一x、一米十二英寸一x
这些属性将帮助您以一种非常有效(平面)的方式获得所需的显示,因此我建议继续阅读它,并考虑使用它而不是其他布局容器来显示复杂视图。

sf6xfgos

sf6xfgos3#

最后我重写了ArrayAdapter的getView,然后将高度和宽度设置为动态确定的屏幕大小

int[] iarry_ScrnDim = new int[2];

DisplayMetrics metrics = new DisplayMetrics();
metrics = ctx_Currnt.getResources().getDisplayMetrics();

iarry_ScrnDim[0] = metrics.heightPixels;
iarry_ScrnDim[1] = metrics.widthPixels;

return iarry_ScrnDim;

if (vw_BigRow == null)
{
    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    vw_BigRow = inflater.inflate(R.layout.liftdatalayout, null);
}

vw_BigRow.setMinimumHeight(mHeight);
vw_BigRow.setMinimumWidth(mWidth);

相关问题