2013-07-10 57 views
1

嗨我正在處理的應用程序中,當我選擇一個listitem它的背景顏色應該改變,它也應該顯示在左側Listitem的垂直欄,就像它出現在youtube應用程序中一樣。突出顯示ListView項目如youtube應用程序?

圖片附後: enter image description here

我知道如何改變ListView項點擊背景顏色,但我怎麼增加它在YouTube的應用apprearing紅線。爲此,我曾想過在listview項目xml中添加一個視圖,我會在項目單擊事件中使其可見。但是,在那種情況下,我將如何隱藏其他listview項目的視圖?或者是他們的其他簡單的方法來實現呢?

+0

使用可繪製的圖像(9片圖像) –

+0

@PankajKumar您沒有收到solution.Please闡述 – user818455

+0

你知道有關列表視圖自定義選擇?如果是,則使用圖像而不是使用顏色。 –

回答

3

嘗試使用此繪製的項目state_pressed:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <solid android:color="@android:color/holo_red_dark" /> 
     </shape> 
    </item> 
    <item android:left="10dp"> 
     <shape> 
      <solid android:color="@android:color/black" /> 
     </shape> 
    </item> 
</layer-list> 
+0

完美無瑕地作品:) –

0

你應該實現一個背景選擇器。要做到這一點,創建一個XML文件具有不同的行狀態(選擇,聚焦等)不同的可繪製。你可以找到很多關於如何做到這一點的例子。例如:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/pressed"/> <!-- pressed --> 
    <item android:state_focused="true" android:drawable="@drawable/focused" /> <!-- focused --> 
    <item android:drawable="@drawable/default"/> <!-- default --> 
</selector> 

之後,只需設置您的行背景可繪製到此文件。

+0

我知道這件事,但我該如何通過drawable添加紅線?我應該使用哪個元素,屬性? – user818455

+0

你是什麼意思?你所需要做的只是用紅線創建一個Drawable(來自圖像)。 – Marek

+0

根據你使用單個drawable我們可以實現那條紅線並改變列表項的背景色嗎? – user818455

0

要創建該類型的列表視圖,您需要創建自定義適配器。創建一個包含其中所有元素的視圖。使用自定義ArrayListAdapter填充列表並使用背景色選擇背景色。

此外,對於垂直欄,默認視圖將不可見,並使選擇可見。即使在視圖關閉後,創建一個公共靜態列表以保持選擇的軌道。