1. 程式人生 > >在ListView的後面新增View

在ListView的後面新增View

ListView是一個在Android當中十分重要的一個元件。大部分的APP都要利用到ListView這個元件,而在這個元件當中,若你使用的是線性佈局(LinearLayout)則是無法在xml中定義一個緊接著ListView的末尾的View的,因此,我們可以利用ListView當中附帶的方法來實現這個佈局

程式碼實現

首先先建立一個在ListView的下面你想建立的佈局(相應的佈局檔案要在xml當中寫出)

    //foot view
    private View footView;

然後,利用ListView當中的addFooterView的方法將這個佈局加入到ListView當中去

        //獲取Layout
        footView = getLayoutInflater().inflate(R.layout.listview_button,null);

        //將layout的內容加入到listView當中去
        listView.addFooterView(footView);

同樣,如果你想在ListView的頭部加入這個佈局,也可以呼叫ListView的addHeaderView這個方法

listView.addHeaderView(headerView);

不過值得注意的是,使用這個方法加入的View實際上是在ListView當中加入的佈局,它的setAdapter的方法的實現其中一部分如下:

        if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {
            mAdapter = wrapHeaderListAdapterInternal(mHeaderViewInfos, mFooterViewInfos, adapter);
        } else {
            mAdapter = adapter;
        }

也就是說,在加入adapter的時候,會先去檢查是否有頭佈局和尾佈局,若存在這些佈局,則將這些佈局都加入到adapter當中一起初始化,因此,在使用getCount方法的時候會出現一些與實際加入的adapter的資料集的數量不同的情況。

而且,在有頭佈局的情況,若使用裡面的position的變數的時候,變數大小要+1,因為此時的佈局數量已經不同了