Android适配器未正确充气视图

时间:2014-08-07 20:26:45

标签: android

我的布局XML文件和充气文件后手机上显示的布局完全不同。出于某种原因,当在ListView中膨胀视图时,许多元素会垂直居中;确切地说,它们层叠在一起。我已经确认这是由于Adapter代码而不是布局本身;如果我创建一个新的Activity并使用setContentView,则视图将显示为应该显示(因为它出现在XML预览中)。 对不起,如果我的措辞很差,我发高烧,不能直接思考(也许这就是为什么我无法解决这个问题)。

截图(一些用于保存公司隐私的photoshopping):

XML预览:

enter image description here

它实际上是什么样的:

enter image description here

适配器代码:

public class CustomAdapter extends BaseAdapter
{
    private Item item;
    private Activity context;

    public CustomAdapter(Item item, Activity context)
    {
        this.item = item;
        this.context = context;
    }

    public int getCount()
    {
        return 1;
    }

    public Object getItem(int position)
    {
        return item;
    }

    public long getItemId(int arg0)
    {
        return -1;
    }

    public View getView(int position, View convertView, ViewGroup parent)
    {
        View v = convertView;

        if (v == null)
        {
            LayoutInflater vi;
            vi = LayoutInflater.from(context.getApplicationContext());
            v = vi.inflate(R.layout.main_layout, null);
        }
        return v;
    }
}

XML来源:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="320dp"
    android:background="#FFFFFF" >

    <RelativeLayout
        android:id="@+id/middleThing"
        android:layout_width="25dp"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="#FFFFFF" >

        <ImageView
            android:id="@+id/topRightIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginTop="50dp"
            android:maxHeight="25dp"
            android:maxWidth="25dp"
            android:src="@drawable/arrow_e" />

        <ImageView
            android:id="@+id/bottomRightIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginBottom="20dp"
            android:maxHeight="25dp"
            android:maxWidth="25dp"
            android:src="@drawable/arrow_e" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/leftTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="10dp"
        android:layout_toLeftOf="@id/middleThing"
        android:background="#FFFFFF" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text=""
            android:textColor="#000000"
            android:textSize="16sp" >
        </TextView>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rightTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginRight="10dp"
        android:layout_toRightOf="@id/middleThing"
        android:background="#FFFFFF" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text=""
            android:textColor="#000000"
            android:textSize="16sp" >
        </TextView>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/leftCol"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/leftTitle"
        android:layout_marginLeft="10dp"
        android:layout_toLeftOf="@id/middleThing"
        android:background="@drawable/background" >

        <TextView
            android:id="@+id/primaryText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="7dp"
            android:layout_marginTop="10dp"
            android:text=""
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>

        <ImageView
            android:id="@+id/primaryDisk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/primaryText"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:maxHeight="40dp"
            android:maxWidth="40dp"
            android:src="@drawable/store" >
        </ImageView>

        <ImageView
            android:id="@+id/snapshotDisk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:maxHeight="40dp"
            android:maxWidth="40dp"
            android:src="@drawable/store" >
        </ImageView>

        <TextView
            android:id="@+id/snapshotText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/snapshotDisk"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="7dp"
            android:text=""
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>

        <ImageView
            android:id="@+id/deDisk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="15dp"
            android:maxHeight="40dp"
            android:maxWidth="40dp"
            android:src="@drawable/store" >
        </ImageView>

        <ImageView
            android:id="@+id/button_direct"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="25dp"
            android:layout_marginRight="20dp"
            android:layout_toLeftOf="@id/deDisk"
            android:maxHeight="40dp"
            android:maxWidth="40dp"
            android:src="@drawable/arrow_direct" >
        </ImageView>

        <TextView
            android:id="@+id/deText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/deDisk"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="7dp"
            android:text=""
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>

        <ImageView
            android:id="@+id/top_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/snapshotText"
            android:layout_below="@id/primaryDisk"
            android:layout_centerHorizontal="true"
            android:maxHeight="25dp"
            android:maxWidth="25dp"
            android:src="@drawable/arrow_s" >
        </ImageView>

        <ImageView
            android:id="@+id/bottom_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/dedupText"
            android:layout_below="@id/snapshotDisk"
            android:layout_centerHorizontal="true"
            android:maxHeight="25dp"
            android:maxWidth="25dp"
            android:src="@drawable/arrow_s" >

        </ImageView>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:layout_below="@id/rightTitle"
        android:layout_marginRight="10dp"
        android:layout_toRightOf="@id/middleThing"
        android:background="@drawable/background" >

        <TextView
            android:id="@+id/mirrorText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="7dp"
            android:layout_marginTop="10dp"
            android:text=""
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>

        <ImageView
            android:id="@+id/miDisk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/mirrorText"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:maxHeight="40dp"
            android:maxWidth="40dp"
            android:src="@drawable/store" >
        </ImageView>

        <ImageView
            android:id="@+id/dedrDisk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="15dp"
            android:maxHeight="40dp"
            android:maxWidth="40dp"
            android:src="@drawable/store" >
        </ImageView>

        <TextView
            android:id="@+id/dedrtext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/dedrDisk"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="7dp"
            android:text=""
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>
    </RelativeLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

尝试inflate的3参数版本给父母但传递false以便它不会添加视图:

v = vi.inflate(R.layout.main_layout, parent, false);