Android CustomView显示两次

时间:2016-03-10 12:58:39

标签: android xml android-custom-view

我创建了一个我添加到XML Layout的CustomView。 这是一个非常简单的布局,不应该显示任何问题。然而,令我恼火的是,有些元素似乎被添加了两次布局(在其内部)。

XML看起来像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/activityLayoutRL">

    <world.b2g.b2gether.ui.RadarQuickInfo
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/radarDetailView"
        android:visibility="visible"/>

</RelativeLayout>

enter image description here

视图本身只是扩展一个LinearLayout,并按如下方式初始化:

 public void initView(Context context){
    this.context = context;
    LayoutInflater inflater = (LayoutInflater)
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.radar_detail_layout, this);
}

切换到另一个内部版本号时,有时似乎会发生变化。我为API级别23开发,但有时似乎更改为22(至少有时候)

所以我创建了这个构造函数

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public RadarQuickInfo(Context context, AttributeSet attrs, 
    int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
    initView(context);
}

自定义视图的布局似乎无法改变任何内容。所以即使这会导致这种影响:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/radarDetailRootViewLL">

</LinearLayout>

我想,某处可能有错误? 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用<merge>

包装自定义视图的布局