Cómo hacer que un elemento de una vista de lista no se pueda hacer clic en Android
Cómo hacer que los elementos en una vista de lista no haga clic en capaz. Tengo temas y elementos en una vista de lista, pero la vista es la misma para los temas y los elementos. Los elementos se pueden hacer clic pero el tema no se puede hacer clic. Cómo lograr esto
La lista se verá como
- Viewpager no se desplaza en el diseño del coordinador
- Ancho del área seleccionable en ListView w / onListItemClick
- Botón de Android en el elemento ListView para cambiar el texto en la misma fila
- Cómo obtener los elementos de lista siguiente y anterior de un listview en android
- Android ListView: detecta si los datos de ListView se ajustan a la pantalla sin desplazarse
Topic item Topic item item
tema. Click able (false) no funcionó, por favor ayuda
- Android: Búsqueda de la altura de renderizado de ListView
- Android ListView relleno de contenido sin mover ListView altura?
- Listview en Android mientras obtiene datos de un servidor
- Cómo establecer pull up para actualizar SwipeRefreshLayout
- ListView onclick va a una nueva actividad
- ¿Cómo obtener los dispositivos bluetooth como una lista?
- Android - Botón de radio en listView?
- ListView onItemLongClickListener no impide que los grifos de enlace
Compartiendo mi experiencia, lo siguiente hizo el truco (ver se refiere a la vista del elemento de lista):
view.setEnabled(false); view.setOnClickListener(null);
- La habilitación mediante la sustitución del método no funcionó ya que el método nunca se invocó.
- El ajuste focusable a false no funcionó tan bien.
No sabe si todavía lo necesita, pero puede implementar su propio adaptador y anular el método isEnabled (posición int). Dependiendo del ViewType del elemento devolverá true o false.
Para que los elementos de una lista no se puedan hacer clic, debe hacer que el adaptador devuelva false en su método isEnabled
para los elementos de la lista. Una manera fácil de instanciar un adaptador y anular isEnabled
se puede hacer de la siguiente manera:
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, from, to, 0) { @Override public boolean isEnabled(int position) { return false; } };
Esta es la respuesta correcta:
He encontrado un montón de comentarios diciendo que
setEnabled(false) setClickable(false) setFocusable(false)
Funcionaría, pero la respuesta es NO
La única solución para este enfoque es:
view = inflater.inflate(R.layout.row_storage_divider, parent, false); view.setOnClickListener(null);
Establecer listSelector transparente en ListView
android:listSelector="@android:color/transparent"
En su adaptador, usted tiene que poner esto:
view = inflator.inflate(R.layout.items_menu_header, null); view.setOnClickListener(null);
Utilizo un booleano para identificar si cabecera o elemento, por lo que asignar un diseño diferente para cada tipo.
En su ListView
agregue el siguiente atributo
android:cacheColorHint = "#00000000"