2015-07-10 64 views
3

我使用水平ListView自定義的TextView XML繪製對象(名單只是一個TextView含),現在我想用一個XML繪製下面的列表項的任何user taps顯示line與底色財產

正如我們在Sliding Tabs正常使用,檢查下面截圖,在該示例用戶已經選擇TAB1,和TAB2 & TAB3處於正常狀態。

enter image description here

在相同的方式,我想實現我的TextViewcustom drawable得到同樣的效果,並得到那個,我下面this鏈接。

但我仍沒有得到任何的成功,看到我的TextView的財產:

<TextView 
    android:text="@string/app_name" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content"   
    android:layout_margin="5dp" 
    android:textColor="#000000" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:background="@drawable/custom_textview" 
    android:ellipsize="marquee" /> 

custom_textview.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true"> 
     <layer-list> 
      <item> 
       <shape> 
        <solid android:color="#ffff7a00" /> 
       </shape> 
      </item> 
      <item android:bottom="3dp"> 
       <shape> 
        <solid android:color="#222222" /> 
       </shape> 
      </item> 
     </layer-list> 
    </item> 
</selector> 
+0

哪些類型的標籤使用的是?設計庫或TabHost或TabLayout? –

+0

兄弟我沒有使用任何標籤?再次閱讀我的問題 – Oreo

+0

哦,對不起,我知道了...... –

回答

0

替換您custom_textview.xml,與此代碼

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="#ffff7a00" /> 
     </shape> 
    </item> 

    <item 
     android:bottom="2dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#222222" /> 
     </shape> 
    </item> 
</layer-list> 
+0

但我得到的每一個列表項目,而我只是想顯示與選定的一個,如: - Tab1在上面的屏幕 – Oreo

+0

好吧,然後,嘗試爲TextView設置屬性android:textIsSelectable =「true」。 –

+0

根本沒有嘗試過的朋友:( – Oreo

0

你可以使用簡單的邏輯 創建row.xml

<LinearLayoutadd attributes with orientation vertical> 
<TextView/> 
<View android:id="@+id/checkId/> 
</LinearLayout/> 

創建一個模型(POJO)

public class MyModel{ 
String name; 
boolean isChecked; 
public MyModel(String name,boolean isChecked){ 
this.name=name; 
this.isChecked = isChecked; 
} 
//apply getters and setters 
} 

現在創建您適配器 在getView方法 檢查器isChecked值是真還是假,如果真設置背景顏色ID爲checkId的視圖,否則將其更改爲白色

現在轉到您的OnItemClickListener 用於循環以確保哪個項目被點擊

for(int i = 0 ;i < youlist.size;i++){ 
yourlist.get(i).setIsChecked(false); 
} 
yourlist.get(positionoflistitem).setIsChecked(true); 
youradapter.notifyDataSetChanged(); 

你做