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<String, Object> mHashMap; private ArrayList<HashMap<String, Object>> mArrayList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mListView=(ListView) findViewById(R.id.listView); mArrayList=new ArrayList<HashMap<String,Object>>(); 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<String, Object>(); mHashMap.put("id", ""+i); mArrayList.add(mHashMap); } } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" android:clipToPadding="false" android:paddingTop="70dip" android:paddingBottom="70dip" android:background="@android:color/darker_gray" android:cacheColorHint="#00000000" /> </RelativeLayout>
android:clipToPadding属性的分析——以ListView的"别样"padding为例,布布扣,bubuko.com