我想在列表视图的每一行中实现Horizontal Scrollview,并为每行添加多个布局附加到水平滚动视图。 (动态地)。
即每行可以附加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;
}
}
活动布局
<ListView
android:id="@+id/lvData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
</ListView>
MAIN LIST VIEW ROW LAYOUT
<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" />