2013-04-29 38 views
9

是否可以使ListView中的項目具有不同的z位置/索引?ListView項目的不同z位置

我希望我的ListView中的一個項目始終位於我的佈局中的其他視圖之上。

見我的說明這裏:

enter image description here

紅色條是ListView的外部的另一視圖(在我的情況下的垂直搜索條)。

我試過在某個項目上調用View.bringToFront(),但那根本不起作用。

任何想法?

+0

就像從而使物體在其頁面位置當用戶與頁面交互向前或向後移動,你可以改變'Z-index'任何價值。 – Andrew 2013-04-30 10:12:53

+0

@Andrew更改視圖的Z-index將會改變相對於其兄弟視圖**的位置**。在ListView中,列表中的所有項目都是兄弟,但是由於列表項不重疊,所以更改Z-index將不起作用。更改列表中的一個項目的Z索引將不會**使其向前跳轉到另一個視圖的前面,該視圖不是** ListView中的視圖的兄弟。 – 2013-05-06 17:16:59

回答

1

這是我會怎麼去實現你想要的效果:

列表中的每個項目應該有一個紅色的酒吧,是該項目的高度。這樣,所有紅色的酒吧排成一排,看上去好像只有一個紅色的酒吧,而實際上每個酒店都有一個酒吧。

如果您使用的是FrameLayout,則子女的順序決定了繪圖順序,例如FrameLayout的第三個孩子將出現在第一個和第二個孩子的頂部。

然後在運行時,您可以在每個項目的內容上方或下方排列紅色條。在適配器的bindView方法中,您可以使用bringToFront方法將紅色條放到該視圖的前面。不要忘記,視圖在ListView中被回收,因此您需要每次將紅色條移動到正確的z位置。

這裏是一個非常簡潔的示例XML文件的視圖中的項目,讓我知道如果你需要更多的信息。

item_red_bar_bottom.xml:

<FrameLayout ...> 
    <ImageView .../> <!-- Red bar on bottom --> 
    <FrameLayout ...> 
     <!-- Normal item contents go here --> 
    </FrameLayout> 
</FrameLayout> 
相關問題