在安卓布局中,我们经常碰到这种情况,在listview上方有几个view,想要实现与listview一样的滑动效果,往往我们会把整个布局做成一个scrollView,然后重写listview的onmeasure方法,嵌套在scrollView中,这样写其实比较麻烦,谷歌官方已经给出了解决方法。将listview前面的所有view放在一个layout布局中,在activity中初始化view时,将此layout布局inflate成一个view对象,并指定其父容器为listview,然后在listview.setAdapter之前加上listview.addHeaderView(view);这样就可以实现连动滑动了,代码如下:
private View listview_header;
private ListView listView;
private MainListAdapter adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inititalView();
}
private void inititalView() {
listView=(ListView) findViewById(R.id.listview_data);
listview_header=getLayoutInflater().inflate(R.layout.listview_header_layout,
listView, false);
adapter=new MainListAdapter(this);
}