通过通胀属性添加相对布局将被忽略

时间:2011-11-02 10:09:11

标签: android relativelayout

我在xml

之后动态膨胀
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dip"
    >
   <ImageView
    android:id="@+id/grid_img"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:scaleType="fitXY"
    android:src="@drawable/nature3"/> 
<TextView  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/img_name"
    android:text=",jfjgf xxfbdg fd dfhs lhl;fsfladsfh; jkhsdl;fshkjfl;fks; l;hflsaf"
    android:inputType="textMultiLine"
    android:maxLines="2"
    android:ellipsize="end"
    android:layout_alignBottom="@+id/grid_img"
    android:layout_alignRight="@+id/grid_img"
    android:layout_alignLeft="@+id/grid_img"
    />
</RelativeLayout>

我使用以下代码通过充气添加此xml。

RelativeLayout v = (RelativeLayout)inf.inflate(R.layout.ui_three, null);

现在问题是我在xml中定义的属性被忽略了,我在Android手机上获得了跟随UI。

enter image description here

我正在将textview与图像的上边缘对齐,而在xml中它与图像的底部对齐。

解决此问题的任何方法。

1 个答案:

答案 0 :(得分:2)

将要添加新布局的父布局作为第二个参数传递:

RelativeLayout v = (RelativeLayout)inf.inflate(R.layout.ui_three, parent);

然后,膨胀的布局将从父级继承布局参数。如果您在尝试将新布局添加到其父级时遇到错误,请使用备用LayoutInflator方法,该方法允许您阻止充气机自动将新布局附加到父级:

RelativeLayout v = (RelativeLayout)inf.inflate(R.layout.ui_three, parent, false);