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

原创 2014年07月22日 21:58:43
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>


版权声明:本文原创作者:谷哥的小弟 http://blog.csdn.net/lfdfhl

相关文章推荐

RecyclerView的使用(3)之添加Header和Footer

RecyclerView虽然作为ListView的替代者有着较好的性能提升,但是ListView的一些常用功能却没有提供,比如我们平时会经常用到的addHeaderView,addFooterView...

ListView和RecyclerView侧滑菜单

仿QQ侧滑(实现的效果跟QQ侧滑菜单一样) 侧滑菜单这个功能出来很久了,网上也有很多开源框架,本身也没啥写的,写这个玩意还是源于一个同行网友,他说找不到ListView的侧滑菜单,我说现在大家都用Re...

你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题

前段时间做项目由于采用的MD设计,所以必须要使用RecyclerView全面代替ListView。但是开发中遇到了需要实现RecyclerView上拉加载、下拉刷新和添加Header以及Footer等...

RecyclerView如何使用正确notifyItemRemoved

当我们需要remove掉一条数据(位置在position)时,想要使用RecyclerView的动态效果,就需要调用notifyItemRemoved。但是该方法不会使position及其之后位置的v...

android中RecyclerView条目无法横向铺满的问题

该问题网上比较多的答案,都是要求修改inflate条目布局的方式,具体如下:View view = LayoutInflater.from(parent.getContext()).inflate(R...

RecyclerView Bug:IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter的解决方案

RecyclerView是android-support-v7-21版本中新增的一个Widget,RecyclerView在刷新刷新数据的时候会出现以下异常: java.lang.IndexOutO...

【Android】详解7.0带来的新工具类:DiffUtil

本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/5256277...

RecyclerView的下拉刷新和自动加载更多

RecyclerView是android v7包下的一个新的控件,用来显示列表型的数据。在Recyclerview之前,我们现实纵向的列表数据时一般都是使用ListView,而用GridView来显示...

为RecyclerView打造万能适配器,点击事件,5.0水波纹点击效果

一.前言最近使用到RecyclerView,RecyclerView使用详解戳这里,由于使用过张鸿洋大神的ListView万能Adapter,感觉RecyclerView的Adapter编写还是太麻烦...

recycleview上拉自动加载数据

上拉加载自动加载数据,其实是一个分页的表现,也就是说,我们上拉的时候时需要自动取请求数据,但是在什么时候取请求呢? 我们应该滑动到最底下面的时候加载数据。这个时候我们最重要的就是判断什么时候到达了最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)