Android适配器未正确膨胀视图
我的布局XML文件和我的手机在充气后显示的布局完全不同。由于某些原因,当在Android适配器未正确膨胀视图,android,Android,我的布局XML文件和我的手机在充气后显示的布局完全不同。由于某些原因,当在列表视图中膨胀视图时,许多元素会垂直居中;准确地说,它们层叠在一起。我已经确认这是由于适配器代码造成的,而不是布局本身;如果我创建一个新的活动并使用setContentView,视图将按其应有的方式显示(如XML预览中所示)。 对不起,如果我的措词不好,我发高烧,不能直接思考(也许这就是我不能解决这个问题的原因) 屏幕截图(一些photoshopping以保护公司隐私): XML预览: 它实际上是什么样子的: 适配器代
列表视图中膨胀视图时,许多元素会垂直居中;准确地说,它们层叠在一起。我已经确认这是由于适配器
代码造成的,而不是布局本身;如果我创建一个新的活动
并使用setContentView
,视图将按其应有的方式显示(如XML预览中所示)。
对不起,如果我的措词不好,我发高烧,不能直接思考(也许这就是我不能解决这个问题的原因)
屏幕截图(一些photoshopping以保护公司隐私):
XML预览:
它实际上是什么样子的:
适配器代码:
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>
尝试3参数版本的充气
给父对象,但传递假
,这样它就不会添加视图:
v = vi.inflate(R.layout.main_layout, parent, false);
在getView/vi.inflate
中尝试将null
替换为parent
之前尝试过,不幸的是,它在使用java.lang.UnsupportedOperationException进行充气时崩溃:AdapterView中不支持addView(视图,布局参数)
。。。哇,这就解决了。为什么会这样?现在要去看源代码了:P非常感谢!