合并标记的属性

时间:2013-08-06 13:16:32

标签: android layout

我有班级

    public class CompactFeedItemView extends LinearLayout {
        public CompactFeedItemView(Context context,MyObject a) {
            LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            inflater.inflate(R.layout.compactfeedviewitem,this,true);
        }
}

然后我有了compactfeedviewitem.xml文件:

<merge xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id='@+id/feedViewItemOuterLayout' 
    android:layout_marginTop="10dp" 
    android:layout_marginBottom="10dp"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/compactfeedborder"
    >

    <ImageView android:id="@+id/feedItemIcon"
        android:src="@drawable/missing" 
        android:layout_height="fill_parent" 
        android:layout_width="wrap_content"
        android:adjustViewBounds="true"
        />
</merge>

这是有效的,并且imageview被合并并作为子项添加,但它忽略了     机器人:layout_marginTop = “10dp”     机器人:layout_marginBottom = “10dp” 合并标签中的属性。

那么如何合并属性,或者这不可能? 我可以换到。这将有效,但最后我为我创建的每个CompactFeedItemView添加了一个额外无用的LinearLayout元素。这正是我想通过合并避免的。

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的,因为merge标记的重点是删除不必要的ViewGroup对象,指定属性(如margin)需要ViewGroup个对象放在视图层次结构中。