ListVIew意外重组

时间:2013-08-20 21:54:00

标签: android user-interface android-listview

列表视图中的项目并意外重新组织。显示向下滚动同一列表项时的含义。这是非常奇怪的行为。有没有人遇到过这个?

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

    View row = view;
    if(row == null)
    {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

       ......
       //this view is on xml file (container)
       LinearLayout ll = (LinearLayout) row.findViewById(R.id.listViewControllers);


       //adding my own views to a linear layout container dynamically...
       .......
       }



    }
   return row;

我决定使用inflater在getView中扩充另一个列表项视图。所有在for循环中。但是我在为textview设置文本时遇到问题。首先出现的行不想正确设置Text。

以下是getView

中的代码段
for(Controller aController : controllers) {   

          inflater.inflate(R.layout.list_view_item, ll, true);
          TextView tv2 = (TextView) row2.findViewWithTag("controller_name");
          tv2.setText(aController.getName());
       }

这是list_view_item:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_controller_cell"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/tableRowBatchController"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingLeft="15dp"
            android:paddingTop="15dp"
            android:tag="controller_name"
android:text="name"
            android:textColor="#ffffff" />
    </TableRow>

</LinearLayout>

提前致谢。仍在查看列表项未在“controller_name”文本视图中正确设置文本的原因

1 个答案:

答案 0 :(得分:0)

这是预期的,ListView重复使用屏幕上的列表项来显示可见项目。添加'else'分支,该分支不会使新View充气,但会使用商品数据填充现有分支。