选定的列表项颜色更改

时间:2013-08-09 14:16:05

标签: android listview

我在list-view

中遇到了这两个问题

问题1:列表视图中的20个项目列表,其中选择了第1个项目。当向下滚动时,所选项目会失去颜色。

选择器可见,当向下滚动项目时仍然被选中但失去了颜色属性(如第二张图所示)

第2期:从20个列表中只有8个项目可见。当用户选择第一个条目并向下滚动列表视图项目显示项目9,10,11 ...默认情况下,项目11是自动选择的,没有颜色高亮(禁用渐变)。

当列表进一步向下滚动时,自动选择一个列表项目(显示在第3张图像中)

<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item  android:state_selected="true"
  android:drawable="@drawable/gradient_active">
 </item>
 <item
 android:state_selected="false"
 android:drawable="@drawable/gradient_inactive" >
 </item>
 </selector>

Gradient_active

<gradient
  android:startColor="#3B5999"
  android:centerColor="#8b9dc1"
  android:endColor="#3B5999"
  android:angle="45" />

Gradient_inactive

<gradient
  android:startColor="#f1f1f2"
  android:centerColor="#e7e7e8"
  android:endColor="#cfcfcf"
  android:angle="270" />

自定义适配器

    public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;

    if(convertView==null)
        vi = inflater.inflate(R.layout.list_row, null);

    TextView tt = (TextView)vi.findViewById(R.id.tt); 
    TextView tn = (TextView)vi.findViewById(R.id.tn); 


    tt.setText(song.get(KEY_TT));
    tn.setText(song.get(KEY_TN));



    return vi;
}

Listiem列表器

mylist.setOnItemClickListener(new OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            view.setSelected(true);
            TextView tw;
            TextView tt;
            tw = (TextView)view.findViewById(R.id.tw); 
            tn = (TextView)view.findViewById(R.id.tt);
            tw.setTextColor(getResources().getColor(android.R.color.white));
            tn.setTextColor(getResources().getColor(android.R.color.white));


        }
    });

0 个答案:

没有答案