android:clipToPadding屬性的分析——以ListView的"別樣"padding為例
MainActivity如下:
package cn.com.bravesoft.testlistviewloadmore;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;/** * Demo描述: * ListView或GridView中android:clipToPadding屬性的使用說明樣本 * 該屬性的解釋: * Defines whether the ViewGroup will clip its drawing surface so as to exclude the padding area. * 什麼意思呢?就是說: * clipToPadding屬性定義了是否允許ViewGroup在padding中繪製,該值預設為true,即不允許. * 所以若我們給ListView設定了android:paddingTop="70dip" android:paddingBottom="70dip" * 那麼我們可以看到ListView的頭部以上和尾部以下都佔有70大小的padding,在滑動ListView的過程 * 中這個padding當然是存在的.在padding部分是看不到ListView的item的,本質上是在這兩部分沒有繪製 * 我們的ListView * 假若我們此時為ListView設定屬性android:clipToPadding="false",同樣再滑動ListView此時可以 * 發現在ListView的頭部以上和尾部以下都佔有70大小的padding部分依然可以顯示我們的ListView的 * item,本質上是在這兩部分繪製了我們的ListView * * 該屬性很適合的應用情境: * 設定ListView的第一個(最後一個)Item距離螢幕TOP(BOTTOM)有一段距離的情況 * * * 參考資料: * http://www.cnblogs.com/xitang/p/3606578.html * Thank you very much */public class MainActivity extends Activity {private ListView mListView;private SimpleAdapter mSimpleAdapter;private HashMap mHashMap;private ArrayList> mArrayList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}private void init(){mListView=(ListView) findViewById(R.id.listView);mArrayList=new ArrayList>();addDataForListView();mSimpleAdapter=new SimpleAdapter (MainActivity.this, mArrayList, R.layout.listviewitem, new String []{"id"},new int []{R.id.textView});mListView.setAdapter(mSimpleAdapter);}private void addDataForListView(){for (int i = 0; i < 30; i++) {mHashMap=new HashMap();mHashMap.put("id", ""+i);mArrayList.add(mHashMap);}}}
main.xml如下: