我怎么能膨胀相对布局

时间:2018-01-23 01:38:53

标签: android

我有一个任务来扩充XML视图。我真的不明白该怎么做。一世  使用了基础适配器。

@Override
public View getView(int position, View convertView, ViewGroup parent) {


    //TODO - Get the current ToDoItem
    final ToDoItem toDoItem =  mItems.get(position);

    //TODO - Inflate the View for this ToDoItem
    // from todo_item.xml.

      RelativeLayout itemLayout =(RelativeLayout)convertView.findViewById(R.id.RelativeLayout1);
     View InflatedView= null;

todo_item.xml看起来像

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

<TextView>
  <!-- some code -->
</TextView>

</RelativeLayout>

我按照下面显示的内容

RelativeLayout itemLayout = 
 (RelativeLayout)convertView.findViewById(R.id.RelativeLayout1);
    LayoutInflater mInflater = LayoutInflater.from(mContext);
    convertView = mInflater.inflate(R.layout.todo_item, parent, false);
    if(convertView==null){
        convertView= new RelativeLayout(mContext);
    }

但这不起作用。我也不理解传递给getview方法的convertView。

1 个答案:

答案 0 :(得分:0)

ListView API有一些怪癖。

convertView中提供给您的getView()参数实际上是可以为空的。这是ListView允许您在用户滚动列表时回收视图的方式。因此,您无法使用它来夸大RelativeLayout

要获取您的视图,您应首先检查convertView是否为空。如果是,那么您需要使用提供给您的View参数来充气parent

RelativeLayout itemLayout;

if (convertView != null) {
  itemLayout = (RelativeLayout) convertView;
} else {
  LayoutInflater inflater = LayoutInflater.from(parent.context);
  itemLayout = (RelativeLayout) inflater.inflate(R.layout.todo_item, parent, false);
}