ListView和ScrollView的冲突解决办法.docxVIP

  • 7
  • 0
  • 约6.11千字
  • 约 12页
  • 2021-03-23 发布于山东
  • 举报
ListView 和 ScrollView 的冲突解决办法 ListView 本身就含有 ScrollView ,因此把 ListView 放到 ScrollView 中会引起混乱(谁来响应滑动事件?)但有时又 确有此需求,以实现 ListView 的内容连同其他内容的滚动。 要想把 ListView 嵌入 ScrollView, 有二个方法: 方法 1:整体上使用一个 ListView, 把不需滚动的部分放入 ListView 的 Header 或 Footer 中。 注意 : 一定要先添加 HearderView 和 FooterView, 然后再设 置 ListView 的 Adapter. 缺陷 : Header 或 Footer 中的内容不能滚动;并且只能允许 同时存在一个 ListView 。 代码如下 : LayoutInflater mLI = (LayoutInflater)context.getSystemService(Context.LAYOU T_INFLATER_SERVICE); listView = (ListView) findViewById(R.id.listView); datas = new ArrayListlt;Objectgt;(); fillDatas(); datasAdapter = new DemoListAdapter(context, datas); MyListHeaderView headerView = mLI.inflate(R.layout.my_header_layout, null); FillDataToHeaderView(headerView); MyListFooterView footerView = mLI.inflate(R.layout.my_footer_layout, null); FillDataToFooterView(footerView); listView.addHeaderView(headerView); listView.addFooterView(footerView); listView.setAdapter(datasAdapter); 方法 2:用 LinearLayout 模拟 ListView, 从而实现任意内容 的滚动。 下面实现的是一个通用的 LinearLayoutForListView ,可以为 它设置不同的 Adapter 从而显示不同的数据。 LinearLayoutForListView 的代码如下 : public class LinearLayoutForListView extends android.widget.LinearLayout { static final String LOG_TAG = LinearLayoutForListView; private android.widget.BaseAdapter adapter; private OnClickListener onClickListener = null; public void fillLinearLayout() { int count = adapter.getCount(); for (int i = 0; i lt; count; i++) { View v = adapter.getView(i, null, null); v.setOnClickListener(this.onClickListener); addView(v, i); } Log.v(countTAG, + count); } public LinearLayoutForListView(Context context) { super(context); } public LinearLayoutForListView(Context context, AttributeSet attrs) { super(context, attrs); } public android.widget.BaseAdapter getAdpater() { return adapter; } public void setAdapter(android.widget.BaseAdapter adpater) { this.adapter = adpater; fillLinearLayout(); } public OnClickListener getOnclickListner() { return onClickListener; } public void setOnclickLinstener(OnClickList

文档评论(0)

1亿VIP精品文档

相关文档