您的位置:首页 > 移动开发 > Android开发

android:clipToPadding属性的分析——以ListView的"别样"padding为例

2014-07-22 21:58 288 查看
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<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);
}
}

}


main.xml如下:

<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: