setonitemclicklistener otro llamar item hacer getitematposition clic activity android listview view visibility onitemclicklistener

android - getitematposition - llamar a otro activity al hacer clic en un item de un listview



setvisibility(view.visible) no funciona después de setvisibility(view.gone) (3)

Si coloca el código haciendo visible un elemento en su onClickListener, no será alcanzable (si no consume nada del espacio de la pantalla, no podrá hacer clic en él). Debería poner un diseño con una altura mínima debajo de él, y cuando su vista se haya ido, el nuevo diseño del caparazón se volverá visible, y debería aparecer visible en OnClickListener. De esta forma, una vez que su Vista se haya ido, este nuevo diseño podrá traerla de regreso.

Vi una publicación sobre esto y entendí el problema. Pero, ¿cómo puede hacerlo? Tengo ListView con un elemento que se puede expandir, pero una vez que la vista se ha ido, no puede volver a estar visible, a menos que tenga espacio libre. ¿Cómo hacer ese espacio?

private void mySetOnItemListener() { l.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { Log.d("onItemClick","called"); LinearLayout ll = (LinearLayout)view.findViewById(R.id.llOpenedField); ll.setVisibility(View.VISIBLE); } }); }

mi vistaDisposición

<?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="wrap_content" android:orientation="vertical" android:descendantFocusability="blocksDescendants"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal" android:weightSum="5" > <TextView android:id="@+id/tv_name" android:layout_width="0px" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="4" android:padding="7dp" android:text="item" android:textColor="@android:color/background_dark" android:textSize="25dp" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/llOpenedField" android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal" > <ImageButton android:id="@+id/ibInformation" android:layout_width="0dp" android:layout_height="wrap_content" android:src="@drawable/info" /> </LinearLayout> </LinearLayout>

el LinearLayout android:id="@+id/llOpenedField" es lo que intento hacer gone al inicio.

pongo el atributo gone en getView() dentro de BaseAdapter .


por favor revisa esta respuesta. Esta respuesta funciona para mí.

TranslateAnimation translateAnimation = new TranslateAnimation(0, 50, 0, 0); int animationTime = 200; translateAnimation.setDuration(animationTime); translateAnimation.setFillEnabled(true); translateAnimation.setFillAfter(true); yourView.startAnimation(translateAnimation); yourView.setVisibility(View.VISIBLE);


prueba esto y modifica de acuerdo a tu necesidad, este no es un elemento de la lista en el que estoy haciendo clic

Make Linear layout android:visibility="gone" ; primero y haz esto esto.

@Override public void onClick(View v) { LinearLayout ll = (LinearLayout)findViewById(R.id.vis); if(v == ex) { if(ll.getVisibility() == View.VISIBLE) ll.setVisibility(View.GONE); else ll.setVisibility(View.VISIBLE); }

actualización: - Estas son líneas para ti ... que harán que la expansión y el colapso sean adecuados, y no habrá espacio libre allí.

if(ll.getVisibility() == View.VISIBLE) ll.setVisibility(View.GONE); else ll.setVisibility(View.VISIBLE);