Ver Gone cuando se hace clic fuera de esa vista

Quería ocultar la vista al hacer clic fuera de esa vista, por ejemplo,

<Framelayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> <ImageView android:id="@+id/imgButtonToOpenGrid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:src="@drawable/open_grid_img" /> <RelativeLayout android:id="@+id/containerGrid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" > <Button android:id="@+id/button1grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/favourites" /> <Button android:id="@+id/button2grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/recent" android:layout_toRightOf="@+id/button1grid" /> <Button android:id="@+id/button3grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/gridview" android:layout_toRightOf="@+id/button2grid" /> </RelativeLayout> </FrameLayout> 

Lo que estoy haciendo en mi aplicación es oncreate estoy ocultando la vista RelativeLayout con id = "containerGrid" y haciendo que relativeLayout vista sea visible cuando hago clic en la vista de la imagen.

Así que mi requisito es que quería ocultar el contenedor RelativeLayout con id = "containerGrid" cuando hago clic fuera de ese contenedor.

Traté de obtener el contenedor framelayout y cuando se hace clic en el contenedor de verificación si relativelayout contenedor se muestra o no, si se muestra a continuación, hizo su vista se fue. Aquí está el código que he intentado,

 containerMap = (FrameLayout)findViewById(R.id.container); containerMap.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub if(rltvContainer.isShown()){ rltvContainer.setVisibility(View.GONE); } } }); 

¿Hay algún lugar que me va mal en lo de arriba.

En realidad tengo mapa también en ese contenedor framelayout así que aquí estoy esperando cuando hago clic en un mapa del contenedor relativelayout debe ir.

2 Solutions collect form web for “Ver Gone cuando se hace clic fuera de esa vista”

Añadir otro coverView que es transparente delante del fragmento de mapa

 <Framelayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> <View android:id="@+id/coverView" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:background="#00000000" android:visibility="gone" /> <ImageView android:id="@+id/imgButtonToOpenGrid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:src="@drawable/open_grid_img" /> <RelativeLayout android:id="@+id/containerGrid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" > <Button android:id="@+id/button1grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/favourites" /> <Button android:id="@+id/button2grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/recent" android:layout_toRightOf="@+id/button1grid" /> <Button android:id="@+id/button3grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/gridview" android:layout_toRightOf="@+id/button2grid" /> </RelativeLayout> </FrameLayout> 

Cuando se abre el containerGrid (lo que significa que su visibilidad es View.VISIBLE , defina la visibilidad de View.VISIBLE en View.VISIBLE .

Si desea cerrar containerGrid , que es el que desea hacer clic fuera de containerGrid , en realidad hace clic en el coverView , establece OnClickListener en el coverView :

 coverView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub if(rltvContainer.isShown()){ rltvContainer.setVisibility(View.GONE); } coverView.setVisibility(View.Gone); } }); 

coverView tanto coverView como containerGrid como View.GONE .

Pruebe a configurar la funcionalidad de enfoque dependiente en falso en framelayout y funcionará

El problema es el diseño del marco no es obtener el evento de clic

Descendiente capacidad de enfoque falso darle habilidad desactivar evento de clic en vistas de niño si un padre vieegroup

  • ¿Cómo utilizar el diseño de material de acción barra de navegación de cajón animación de conmutación?
  • Borde de desplazamiento de Android Navigation Drawer
  • InflateException en la llamada al método inflater.inflate ()
  • Android.widget.RelativeLayout no se puede convertir en android.support.v7.widget.RecyclerView
  • Adaptar chrisbanes ActionBar-PullToRefresh a fragmentos (NavigationDrawer)
  • Android, DrawerLayout + Fragmentos + CollapsingToolbarLayout
  • Cómo obtener elementos en el cajón de navegación para cambiar la vista
  • FragmentManager.beginTransaction () no se puede aplicar a (int, android.app.fragment)
  • Icono del cajón de navegación (ic_drawer) no se muestra
  • ¿Barra de herramientas Android para API 19? (Para la API 21 funciona bien)
  • Android: ¿Es mejor crear un nuevo fragmento cada vez que se hace clic en un elemento del cajón de navegación o cargar fragmentos creados anteriormente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.