Android listSelector aún parcialmente visible cuando el elemento se desplaza hacia afuera
La imagen muestra el problema:Venus
el elemento se desplaza hacia afuera pero su selección es visible.
He miradoListSelector colgado en ListView y estoy usando formas / gradiente como se aconsejó, pero todavía no tuve suerte.
Dispositivo: MS VS Emulator para Android, Android 4.2 XHDPI API-17
IDE: Android Studio 2. en Windows 7 WM.
Layout, actividad principal
<?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>
selector de lista
<?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>
dibujables, 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>
Y código de actividad
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);
}
}
dóndePlanets
es solo una serie de cadenas (Sol, Mercurio, Venus, Tierra, Marte, Júpiter ...) ymyitem
es solo unTextView
Con altura personalizada.
¿Dónde me equivoco, por favor?
EDITAR Para aclarar la pregunta, se trata del comportamiento de selección de lista predeterminado. Eso es sobre el elemento del selector de lista sinandroid:state_xxx
atributos. No prestes mucha atención al correspondiente nombre dibujable. Estoy listo para renombrar@drawable/item_selected
a@drawable/item_default
. Avíseme si ayudará a aclarar el problema y le cambiaré el nombre.