addHeaderView()
- ListView.addHeaderView(view)可以在ListView顶部添加其他的组件并连在一起形成新的组件,并且addHeaderView()会按照添加顺序将header从上至下进行罗列
textView = new TextView(this);
textView.setText("WJX");
String[] arrs = {
"aaa",
"bbb",
"ccc",
"ddd",
"eee",
"fff",
"ggg",
"hhh"
};
ArrayAdapter<String> arrayAdapter = new ArrayAdapter(this, R.layout.array_item, arrs);
listView.addHeaderView(textView);
listView.setAdapter(arrayAdapter);
addHeaderView()重载方法
- addHeaderView(view, null, true)
- 可以控制headerView是否被selected, true为selected, false为非selected
addHeaderView()和setAdapter()方法调用顺序
- 要在setAdapter()方法调用之前,调用addHeaderView(),即在listView绑定adapter之前添加headerView
- 因为在调用setAdapter()时listView会判断当前是否有headerView和footView,如果添加了两者中的任何一个都会生成一个包含原有item的新的listView
headerView和footView的响应
- headerView和footView都会响应onItemClick()方法,headerView为第一个item,footerView为最后一个item
使用addHeaderView加载布局
View headerView = getLayoutInflater().inflate(R.layout.list_header_view, null);
Button button = headerView.findViewById(R.id.header_button);
TextView headerTextView = headerView.findViewById(R.id.header_text);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter(this, R.layout.array_item, arrs);
listView.addHeaderView(headerView);