2014-12-01 24 views
-1

所以,我真的有ViewGroups兩個相關的問題:安卓檢測的ViewGroup兒童的位置

  1. 是一個LinearLayout和實例的ViewGroup?意思是,當使用LinearLayout時,我可以撥打getChildAt(index)嗎?

  2. 我可以在滾動後檢測到ViewGroup孩子在屏幕的「頂部」(在操作欄的正下方)嗎?例如,當第三個孩子被滾動到頂部

我的工作,利用視差滾動,我使用的是具有自定義ViewLinearLayout作爲一個孩子的開源庫的應用程序和LinearLayouts孩子。在他們的自定義View類他們打電話getChildAt,但我似乎無法找到有關LinearLayouts相關的文檔,所以我想檢查。基本上我想檢查這些TextViews之一是否在屏幕的頂部。任何確認將不勝感激

回答

1

問題1 {是一個LinearLayout和ViewGroup的實例嗎?意思是,使用LinearLayout時可以調用getChildAt(index)嗎?}

答案 = YES ... 一個ViewGroup中是一個特殊的觀點,即可以包含其他視圖(稱爲孩子。)視圖組用於佈局和視圖容器基類的..所以你的線性佈局是一種觀點,因爲它擴展視圖,以及它是否包含其他孩子叫子視圖那麼它是一個ViewGroup中..延伸的ViewGroup觀點..含義是,你可以使用線性佈局時要調用getChildAt(index) ..

問題2 {我可以檢測ViewGroup子項何時位於屏幕的「頂部」(位於操作欄下方)嗎?}。

答案 YES,你可以檢查孩子的Z順序在ViewGroup中以瞭解它的位置,(包含其它子視圖的視圖),所以可能是你的第一個孩子是在動作條下面的孩子,這就是如果你的視圖組(這是線性佈局)是你的活動的視圖內容 - 情況總是如此嗎? - 是啊..

,如果你想在一般則look heregetChildAt和viewgroups一個文檔..

希望它有助於..讓我知道這是什麼引起的..

+0

所以我的第二個問題,我的意思是我可以在滾動後檢測到孩子在屏幕的頂部嗎?所以,當孩子3在屏幕的「頂部」,例如 – 2014-12-02 14:06:24

+0

以及那個,我想你需要破解它,通過使用onscroll監聽器的邏輯,並獲得可見的項目計數,並從你的子計數中減去它/ totalItemCount ..或檢查簡單的第一個可見項不是0 ..所以你得到的索引,並從你的視圖組拉。我有道理@RyanSayles – Elltz 2014-12-02 17:39:27

+0

但我總是使用線性佈局嗎?@RyanSayles – Elltz 2014-12-02 17:40:55