Android listSelector все еще частично виден, когда элемент прокручивается
Изображение показывает проблему:Venus
элемент прокручивается, но его выбор виден.
Я смотрел наЗависал listSelector в ListView и я использую формы / градиент, как было рекомендовано, но все равно не повезло.
Устройство: MS VS Emulator для Android, Android 4.2 XHDPI API-17
IDE: Android Studio 2. на Windows 7 WM.
Макет, основная деятельность
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:drawSelectorOnTop="false"
android:scrollingCache="false"
android:animationCache="false"
android:listSelector="@drawable/list_selector">
</ListView>
</LinearLayout>
список выбора
<?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/item_pressed" />
<item
android:drawable="@drawable/item_selected" />
</selector>
Drawables, item_pressed
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="90"
android:endColor="#0000ff"
android:startColor="#0000ff" />
</shape>
item_selected
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="90"
android:endColor="#00ff00"
android:startColor="#00ff00" />
</shape>
И код активности
package com.example.listdemo;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.Planets, R.layout.myitem);
setListAdapter(adapter);
}
}
гдеPlanets
это просто набор строк (Солнце, Меркурий, Венера, Земля, Марс, Юпитер ...) иmyitem
это простоTextView
с нестандартной высотой.
Где я не прав, пожалуйста?
РЕДАКТИРОВАТЬ Чтобы прояснить вопрос, речь идет о поведении выбора списка по умолчанию. Это о пункте выбора списка безandroid:state_xxx
атрибутов. Не обращайте особого внимания на соответствующее нарисованное имя. Я готов переименовать@drawable/item_selected
в@drawable/item_default
, Дайте мне знать, если это поможет прояснить проблему, и я переименую ее.