引用的文章:http://blog.csdn.net/superharder/article/details/40818019
http://blog.csdn.net/psh24053/article/details/7517029
一、 想想我們需要自定義哪些屬性。
在res/values/attrs.xml 文件中寫自定義的屬性
屬性文件
二、在布局文件中,需要包名.控件名,才可以使用這個控件,使用自定義的屬性,需要聲明命名控件,不在是android:xxx。
布局文件
三、獲取屬性值對View初始化
獲取屬性值
一、ScrollView嵌套ListView的滑動沖突問題
方法一:ListView在布局文件中高度,不管是match_parent,wrap_content,就會顯示成一行。如果ScrollView中內容一屏顯示不了,和Listview的滾動發生沖突,會出現ListView無法滾動。為什么呢?滑動事件不知道交給哪個處理,默認ScrollView攔截了滑動事件,所以造成了ListView不會滑動的現象。怎么解除滑動方向一致的沖突呢?有兩種解決方法:1.外部攔截法,2.內部攔截法。對于這種情況推薦方法1,處理比較簡單。
給ListView添加Touch監聽
根據在ListView那塊區域點擊事件我們來區分讓那一個控件來滑動,事件類型為move,down時,告訴父容器不能攔截事件。我們可以通過父容器的一個方法requestDisallowInterceptTouchEvent方法來屏蔽父容器的攔截功能。
方法二:自定義一個繼承ListView的類,在onMeasure方法中,給出高度,一般這個值Intenger.MAX_VALUE >>2 .在運行出是什么樣的,一個展開的ListView,數據全部顯示出來。
onMeasure方法
片段一
片段二
片段三