带水平滚动视图的Android ListView

带水平滚动视图的Android ListView,android,listview,baseadapter,Android,Listview,Baseadapter,我想在列表视图的每一行中实现水平滚动视图,并为每一行将多个布局附加到水平滚动视图。(动态地) i、 e每行可以附加3、4或5个布局 问题:-一切正常,主要问题是第一行填充了所有行数据,在滚动列表视图时,数据正在快速变化 为什么会这样 适配器 public class ListViewAdapter extends BaseAdapter { private Context context; private ArrayList<String> dataSet;

我想在列表视图的每一行中实现水平滚动视图,并为每一行将多个布局附加到水平滚动视图。(动态地)

i、 e每行可以附加3、4或5个布局

问题:-一切正常,主要问题是第一行填充了所有行数据,在滚动列表视图时,数据正在快速变化

为什么会这样

适配器

public class ListViewAdapter extends BaseAdapter {

    private Context context;
    private ArrayList<String> dataSet;
    LayoutInflater inflater;
    private View additionView;
    private LinearLayout subFunctionLayout;
    private TextView tv;
    LinearLayout layoutHolder;


    public ListViewAdapter(Context context) {
        this.context = context;
        inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }

    @Override
    public int getCount() {
        return 40;
    }

    @Override
    public Object getItem(int arg0) {
        return arg0;
    }

    @Override
    public long getItemId(int arg0) {
        return arg0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;

        if(convertView==null){
            holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.row_scroll_layout, null);
            layoutHolder=(LinearLayout)convertView.findViewById(R.id.layoutHolder);


            for (int i = 0; i <5; i++) {
                //additionView = inflater.inflate(R.layout.inner_layout_file, null);
                subFunctionLayout = new LinearLayout(context);
                subFunctionLayout.setOrientation(android.widget.LinearLayout.VERTICAL);
                subFunctionLayout.setLayoutParams(new ViewGroup.LayoutParams(-1,-1));
                // ARGB: Opaque Red
                subFunctionLayout.setBackgroundColor(0x88ff0000);
                tv = new TextView(context);
                tv.setLayoutParams(new ViewGroup.LayoutParams(-1,-2));
                tv.setText("TEXT: " + position);
                // ARGB: Opaque Green
                tv.setBackgroundColor(0x5500ff00);
                subFunctionLayout.addView(tv);
                layoutHolder.addView(subFunctionLayout);
                } 

            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }



        return convertView;
    }

    class ViewHolder {
        TextView tv_titleExample;
        HorizontalScrollView hzView;
        LinearLayout linear_layout,main_linear_layout;
    }

}
公共类ListViewAdapter扩展了BaseAdapter{
私人语境;
私有ArrayList数据集;
充气机;
私有视图添加视图;
专用线路布局子功能布局;
私家图文电视;
线性布局布局布局设计师;
公共ListViewAdapter(上下文){
this.context=上下文;
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
}
@凌驾
public int getCount(){
返回40;
}
@凌驾
公共对象getItem(int arg0){
返回arg0;
}
@凌驾
公共长getItemId(int arg0){
返回arg0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
if(convertView==null){
holder=新的ViewHolder();
convertView=充气机。充气(R.layout.row\u scroll\u布局,空);
layoutHolder=(LinearLayout)convertView.findViewById(R.id.layoutHolder);
对于(int i=0;i
<ListView
    android:id="@+id/lvData"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" >
</ListView>
<LinearLayout
    android:id="@+id/layoutHolder"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

</LinearLayout>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6.0dip"
android:src="@drawable/ic_launcher" />