我在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));
}
});