一種Android列表視圖組件的使用方法
【技術領域】
[0001]本發(fā)明涉及Android系統(tǒng)操作領域,尤其涉及一種Android列表視圖組件的使用方法。
【背景技術】
[0002]目前看新聞或者逛貼吧,首先看到的都是列表顯示的標題和摘要,想要看詳細內(nèi)容需要點擊標題進而跳轉到下一個Activity才能閱讀,中間有暫時的停頓,影響閱讀的連貫性和流暢性。而且在閱讀詳細內(nèi)容時想要返回到標題頁面也要經(jīng)過Activity的跳轉,對于大屏手機,頻繁的按返回鍵手指需要移動較長的距離。
[0003]在目前的手機應用的文本顯示中,一般是以列表的形式顯示文本的標題和摘要,再通過點擊操作跳轉到先一個Activity實現(xiàn)文本詳細內(nèi)容的顯示,若要再次查看標題和摘要,需要按返回鍵。以上過程都是通過點擊視圖組件或者按鍵實現(xiàn)文本的預覽和顯示。操作比較單一,而且在跳轉Activity時會出現(xiàn)暫時的停頓,影響閱讀的連貫性。對于大屏手機或者休閑的時候,有些用戶喜歡雙指操作手機,以上方案無法滿足這類用戶的體驗。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,本申請記載了一種Android(即安卓操作系統(tǒng))列表視圖組件的使用方法,適用于具有Android系統(tǒng)的智能終端中列表視圖組件,所述方法包括步驟:
[0005]當用戶點擊所述智能終端的觸摸屏發(fā)出觸摸事件時,列表顯示組件監(jiān)聽所述觸摸事件;
[0006]計算所述觸摸事件中兩個觸摸點的位置變化;
[0007]根據(jù)所述位置變化判斷所述列表顯示組件還是列表項顯示組件攔截所述觸摸事件;
[0008]對所述觸摸事件進行相應處理。
[0009]較佳的,每個所述觸摸點包括原始點和結束點;在計算當觸摸事件結束后兩個所述觸摸點的位置變化時包括步驟:
[0010]記錄用戶初次按在所述顯示屏時上的原始點的位置;
[0011]計算兩個所述原始點之間的第一距離;
[0012]記錄用戶離開所述顯示屏時的結束點的位置;
[0013]計算兩個所述結束點之間的第二距離;
[0014]判斷所述第一距離和所述第二距離的大小,當所述第一距離大于所述第二距離時,兩個所述觸摸點的距離增大;當所述第一距離大于所述第二距離時,兩個所述觸摸點的距離減小。
[0015]較佳的,當兩個所述觸摸點的位置變大且所述列表項顯示組件為可見屬性時,在執(zhí)行步驟對所述觸摸事件進行相應處理之前,還需要對所述觸摸事件是否跨越多個列表項進行判斷。
[0016]較佳的,在對所述觸摸事件是否跨越多個所述列表項進行判斷的過程包括步驟:
[0017]判斷兩個所述原始點和兩個所述結束點的是否在同一列表項的位置范圍內(nèi),如果是,則所述觸摸動作僅跨越一個所述列表項;否則,所述觸摸動作跨越了不止一個所述列表項。
[0018]較佳的,當所述觸摸事件僅跨越了一個列表項,將所述列表項所對應的詳細內(nèi)容顯示組件的屬性設置為可見。
[0019]較佳的,在將所述列表項所對應的詳細內(nèi)容顯示組件的屬性設置為可見的過程中包括步驟:
[0020]根據(jù)兩個所述原始點和兩個所述結束點的位置信息判斷所述觸摸動作所跨越的所述列表項;
[0021]在數(shù)據(jù)庫中查詢所述列表項所對應的所述詳細內(nèi)容顯示組件;
[0022]適配器加載所述列表項對對應的所述詳細內(nèi)容;
[0023]將所述詳細內(nèi)容綁定到所述詳細內(nèi)容顯示組件上。
[0024]較佳的,在將所述列表項所對應的詳細內(nèi)容顯示組件的屬性設置為可見后,隱藏除去所述詳細內(nèi)容顯示組件之外的其它顯示組件。
[0025]較佳的,當兩個所述觸摸點的位置變小且詳細內(nèi)容顯示組件為的屬性為隱藏時,隱藏所述詳細內(nèi)容顯示組件,將所述列表項顯示組件設置為可見。
[0026]較佳的,當所述觸摸事件跨越了多個列表項時,判斷所述觸摸事件錯誤,所述智能終端不執(zhí)行任何操作。
[0027]較佳的,當所述觸摸事件跨越了多個列表項時,判斷所述觸摸事件錯誤,所述智能終端不執(zhí)行任何操作。
[0028]較佳的,所述觸摸事件包括雙指撥開操作和雙指合并操作。
[0029]上述技術方案具有如下優(yōu)點或有益效果:本發(fā)明的優(yōu)點是對于大屏手機或者平板,不方便按返回鍵的情況下,可以通過雙指在屏幕中間操作完成文本信息的瀏覽和閱讀,不用頻繁的在屏幕中間和返回鍵之間移動手指。同時滿足了喜歡雙指操作用戶的需求,豐富了手指操作的多樣性。
【附圖說明】
[0030]參考所附附圖,以更加充分的描述本發(fā)明的實施例。然而,所附附圖僅用于說明和闡述,并不構成對本發(fā)明范圍的限制。
[0031]圖1為本發(fā)明一種Android列表視圖組件的使用方法的總體流程圖;
[0032]圖2為本發(fā)明一種Android列表視圖組件的使用方法中觸摸點位置變化的流程圖;
[0033]圖3為本發(fā)明一種Android列表視圖組件的使用方法中判定觸摸事件后進行相應處理的流程圖;
[0034]圖4為本發(fā)明一種Android列表視圖組件的使用方法中雙指撥開操作的流程圖;
[0035]圖5為本發(fā)明一種Android列表視圖組件的使用方法中雙指合并操作的流程圖。
【具體實施方式】
[0036]下面結合附圖和具體實施例對本發(fā)明的Android列表視圖組件的使用方法進行詳細說明。
[0037]列表顯示組件包含列表項顯示組件,列表項顯示組件包含標題頁顯示組件和詳細內(nèi)容顯示組件。列表顯示組件繼承系統(tǒng)顯示組件的ListView,列表項顯示組件繼承自系統(tǒng)的ViewGroup。在布局xml文件里定義列表項顯示組件的結構。列表加載時由列表適配器從數(shù)據(jù)庫或者網(wǎng)絡獲得數(shù)據(jù)并綁定到列表項中,適配器首次生成列表項時從布局xml文件中的屬性配置列表項組件。在xml里配置的標題頁顯示組件為Visible屬性(可見屬性),即首次打開就顯示,而詳細內(nèi)容顯示組件的屬性配置為Gone (隱藏屬性),即首次打開時默認隱藏。配置了這些屬性后,首次打開列表顯示組件時,默認只顯示列表項,隱藏詳細內(nèi)容。適配器在加載數(shù)據(jù)時只會加載標題信息并綁定到標題顯示組件上,暫時不對詳細內(nèi)容的數(shù)據(jù)進行處理。
[0038]本發(fā)明需要用到安卓系統(tǒng)里的android, widget.ListView類,重寫了 ListView的事件攔截監(jiān)聽方法,對觸摸事件進行定制化處理。還需要用到列表適配器Adapter,該類是視圖和數(shù)據(jù)源之間的橋梁,它的作用有準備列表需要的數(shù)據(jù)源,將數(shù)據(jù)源綁定到列表的子組件列表項上。最后列表加載該適配器進行顯示。布局xml文件是列表中的每一項對應的布局,包含標題和默認隱藏的詳細內(nèi)容。文本的標題和詳細內(nèi)容保存在數(shù)據(jù)庫中。
[0039]列表顯示組件屬于安卓系統(tǒng)組件,它擁有自己的子組件,也就是列表項組件。它們不僅有顯示內(nèi)容信息的功能,還可以對在其上的操作進行監(jiān)聽和處理,它利用系統(tǒng)的觸摸事件監(jiān)聽接口,注冊事件監(jiān)聽器后,可以監(jiān)聽觸摸事件。觸摸事件監(jiān)聽器可以監(jiān)聽的事件類型有多種,包括單點觸摸事件和多點觸摸事件等,本發(fā)明中會對多點觸摸事件進行處理。多點觸摸事件中,觸摸屏會記錄每個點的初始位置和最終位置,也就是點從屏幕上消失時的位置,在這個過程中同時會記錄每個點的實時位置。若觸摸事件為兩點且兩點的間距持續(xù)擴大,對應雙指撥開的操作,此時,列表項顯示組件和列表顯示組件都會監(jiān)聽到該事件,但只能由其中一個對該事件進行處理。由于該事件是雙指撥開操作,程序理解執(zhí)行該事件的主體需要打開列表項的內(nèi)容,所以由列表顯示組件攔截并處理該觸摸事件,列表通過系統(tǒng)提供的接口攔截該事件后,就會對事件進行相應的處理,然后銷毀該事件以阻止其它顯示組件對其進行處理,引起異?,F(xiàn)象。
[0040]如圖1所示,一種Android列表視圖組件的使用方法,適用于具有Android系統(tǒng)的智能終端中列表視圖組件,包括:
[0041]當用戶點擊所述智能終端的觸摸屏發(fā)出觸摸事件時,列表顯示組件監(jiān)聽所述觸摸事件;
[0042]計算所述觸摸事件中兩個觸摸點的位置變化;
[0043]根據(jù)所述位置變化判斷列表顯示組件還是列表項顯示組件攔截所述觸摸事件;
[0044]所述觸摸事件進行相應處理。
[0045]具體來說,所述觸摸事件包括兩種:雙指撥開操作和雙指合并操作。當用戶發(fā)出雙指撥開操作時,即用戶同時觸摸顯示屏上的兩個不同點并分別進行劃動操作,兩個所述觸摸點之間的距離變大;當用戶發(fā)出雙指合并操作時,即用戶同時觸摸顯示屏上的兩個不同點并分別進行劃動操作,兩個所述觸摸點之間的距離變小。
[0046]如果所述觸摸事件為雙指撥開操作,那么列表項顯示組件攔截并處理該觸摸事件,相應處理為打開列表項所對應的詳細內(nèi)容顯示組件;如果所述觸摸事件為雙指合并操作,那么列表顯示組件攔截并處理該觸摸事件,相應處理為打開列表顯示組件。
[0047]列表組件攔截事件后,首先會對該事件進行進一步分析,兩點點觸摸事件中,當?shù)谝粋€點和第二個點按下去的事件,系統(tǒng)提供的事件監(jiān)聽接口會傳入事件參數(shù),該參數(shù)包含了事件的類型和觸摸點的位置等信息,程序可以在點按下去的時候記錄兩點和位置并計算兩點之間的距離,保存在進程的內(nèi)部變量中。同樣,當事件點離開觸摸屏時,程序也記錄相應的位置,當兩個點全部離開屏幕時,分析對比觸摸事件發(fā)生和結束時,兩個觸摸點之間的位置變化。第一種情況:兩個觸摸點之間的距離擴大,即雙指撥開操作;第二種情況:兩個點之間的距離縮小,即雙指合并操作。列表組件會定位該事件發(fā)生的具體位置,也就是觸摸事件發(fā)生的那個列表項,這里會出現(xiàn)幾種情況,當觸摸事件跨越多個列表項時,程序不會對該事件進行處理,默認為無效操作。只有當觸摸事件只發(fā)生在單獨的一個列表項時才會進行處理。對于雙指撥開操作,程序需要顯示列表項的詳細內(nèi)容,這里需要詳細內(nèi)容的顯示組件,根據(jù)詳細內(nèi)容的數(shù)據(jù)類型決定組件是用文本顯示組件還是圖片顯示組件等。這個詳細內(nèi)容的顯示組件是包含在該列表項組件中的,默認情況是隱藏的,只有當需要顯示詳細內(nèi)容時才會出現(xiàn)。當監(jiān)聽到雙指撥開操作后,將詳細