2013-04-29 13 views
9

ListView内のアイテムに異なるz位置/インデックスを付けることは可能ですか?ListViewアイテムのz位置が異なる

ListViewの1つのアイテムを常にレイアウト内の他のビューの上に配置したいとします。

はここに私の図を参照してください:

enter image description here

を赤いバーが(私の場合垂直シークバーに)リストビュー外の別の図です。

私は特定の項目にView.bringToFront()を呼び出そうとしましたが、それは全く機能しませんでした。

アイデア?

リストの各項目は、項目の高さであることで赤いバーを持っている必要があります。ここでは

+0

ただ、ユーザーがページと対話するように、オブジェクトはそのページ位置に前後移動するようにあなたが 'Z-index'を変更することができます任意の値などがあります。 – Andrew

+0

@Andrewは、ビューのZ-インデックスを変更するだけで、**その兄弟ビューに対する相対的な位置**を変更します。 'ListView'では、リスト内のすべての項目が兄弟ですが、リスト項目が重複しないため、Z-索引を変更しても効果はありません。リストの1つの項目のZ-インデックスを変更すると、** ListViewのビューの兄弟ではない別のビューの前にジャンプすることはできません**。 –

答えて

1

は、私はあなたが望む効果を達成については行くだろう方法です。そうすれば、実際には1つのアイテムに1つの赤いバーがあるように見えるように、すべての赤いバーが並んでいます。

FrameLayoutを使用している場合は、子供の順番が決定されます。たとえば、FrameLayoutの3番目の子が1番目と2番目の子供の上に表示されます。

実行時に、各項目の内容の上または下に赤いバーを配置することができます。アダプタのbindViewメソッドでは、bringToFrontメソッドを使用して、そのビューの赤いバーを前面に表示できます。ビューがListViewにリサイクルされていることを忘れないでください。赤いバーを移動して毎回zの位置を修正する必要があります。

ここでは、ビュー内のアイテムのXMLファイルの例を示します。詳細が必要な場合はお知らせください。

item_red_bar_bottom.xml:

<FrameLayout ...> 
    <ImageView .../> <!-- Red bar on bottom --> 
    <FrameLayout ...> 
     <!-- Normal item contents go here --> 
    </FrameLayout> 
</FrameLayout> 
関連する問題