自定義控件,滑動沖突

引用的文章: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方法


片段一


片段二


片段三
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容