getView()執行次數問題(自己再次測試,順便做個記錄)

李學凱發表於2015-08-01
public class ChexianListAdapter extends BaseExpandableListAdapter {
	
	int count = 0;
	public ChexianListAdapter( Context mContext,String[] mgroup_title_arry,String[][] mchild_text_array){
	}
	
	// 重寫ExpandableListAdapter中的各個方法
	/**
	 * 獲取一級標籤總數
	 */
	@Override
	public int getGroupCount() {
	}

	/**
	 * 獲取一級標籤內容
	 */
	@Override
	public Object getGroup(int groupPosition) {
	}

	/**
	 * 獲取一級標籤的ID
	 */
	@Override
	public long getGroupId(int groupPosition) {
	}

	/**
	 * 獲取一級標籤下二級標籤的總數
	 */
	@Override
	public int getChildrenCount(int groupPosition) {
	}

	/**
	 * 獲取一級標籤下二級標籤的內容
	 */
	@Override
	public Object getChild(int groupPosition, int childPosition) {
	}

	/**
	 * 獲取二級標籤的ID
	 */
	@Override
	public long getChildId(int groupPosition, int childPosition) {
	}

	/**
	 * 指定位置相應的組檢視
	 */
	@Override
	public boolean hasStableIds() {
	}

	/**
	 * 對一級標籤進行設定
	 */
	@Override
	public View getGroupView(int groupPosition, boolean isExpanded,
			View convertView, ViewGroup parent) {
		count ++;
		System.out.println("次數" + count + "所在父list的位置" + groupPosition);
		// 返回一個佈局物件
		return convertView;
	}


	/**
	 * 對一級標籤下的二級標籤進行設定
	 */
	@Override
	public View getChildView(int groupPosition, int childPosition,
			boolean isLastChild, View convertView, ViewGroup parent) {
		convertView = (RelativeLayout) RelativeLayout.inflate(
				mContext, R.layout.chexian_child_layout, null);
		return convertView;
	}

	/**
	 * 當選擇子節點的時候,呼叫該方法
	 */
	@Override
	public boolean isChildSelectable(int groupPosition, int childPosition) {
		return true;
	}

};

下面上測試結果

結果   1 


其對應佈局檔案


結果     2  


其對應佈局檔案;


結果3


其對應佈局檔案


好了

測試結果已經全部給顯示出來,看到了什麼?

重點都在高度的設定上fill 和wr 的 不同導致getview()的次數也不同。



這個listview的顯示樣式如下:



然後就是

在正確的執行次數的情況之下,去測試拖動的時候的情況;如圖:


這個就順便說明了listview的工作原理

具體不多說,可以去搜尋一下,回來看這個圖就會明白它說的那個管理的機制是什麼個情況了。

另外還有

2中優化listview 的方案

我這個adapter裡面沒有使用,所以在滑動的時候每次都要載入一次xml檔案

沒有體現到複用的知識。

感興趣的可以去搜尋一下

我要是去測試優化情況下的執行次數的時候

會再次發帖的。


link:給推薦幾個對程式設計師來說神器般存在的軟體


相關文章