¿Cómo ocultar el icono de acción compartida (que utiliza más) cerca del proveedor de acciones compartidas?

Mira la foto. ¿Cómo puedo ocultar el icono "P" que significa compartir con Pinterest?

Introduzca aquí la descripción de la imagen

Ambos están en la barra de acción y uso ActionBarSherlock.

Si desea conservar todo el modelo de datos de historial de compartición , pero simplemente no desea la "actividad de recurso compartida por defecto" icom. La respuesta en ¿Cómo se desactiva el historial de acciones cuando se utiliza ShareActionProvider? No es lo suficientemente bueno.

Lo que debe hacer es:

  • Copiar estas clases de la ActionBarSherlock a su código de proyecto
    • ShareActionProvider.java
    • ActividadChooserView.java
  • En su clase ShareActionProvider.java, importe el ActivityChooserView.java que acaba de copiar en lugar de la ubicación del archivo ActionBarShelock
  • En el ActivityChooserView.java –
    • Busque la línea if (activityCount > 0 && historySize > 0)
    • Reemplazar esta línea por if (false) (es bastante feo, pero es la solución más rápida, puedes ahondar en el código para eliminar todas las ocurrencias de la implementación de DefaultActivity)

Edición: No olvide establecer el nuevo ActionProvider a su elemento de menú, desde XML se vería así: android:actionProviderClass="com.*.CustomShareActionProvider"

¡Eso es!

Encontré una manera de trabajar alrededor de esto. Estoy utilizando la biblioteca de soporte 23.0.1, no he probado esto en otras versiones de la biblioteca de soporte.

La solución es fácil, cuando se crea ShareActionProvider, simplemente anula el método onCreateActionView () y devuelve null para ello. A continuación, puede realizar un seguimiento de toda la historia en el menú emergente, pero el historial no se mostrará en la barra de herramientas.

Aquí hay un ejemplo de código:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem item = menu.add(Menu.NONE, R.id.menu_share, Menu.NONE, R.string.share); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); mShareActionProvider = new ShareActionProvider(this) { @Override public View onCreateActionView() { return null; } }; item.setIcon(R.drawable.abc_ic_menu_share_mtrl_alpha); MenuItemCompat.setActionProvider(item, mShareActionProvider); return true; } 

Actualmente no he encontrado ningún problema usando este trabajo alrededor.

Basado en la respuesta de Sean he creado las clases necesarias, puedes copiarlas en tu proyecto ( https://gist.github.com/saulpower/10557956 ). Esto no sólo agrega la capacidad de desactivar el historial, sino también de filtrar las aplicaciones con las que desea compartir (si conoce el nombre del paquete).

 private final String[] INTENT_FILTER = new String[] { "com.twitter.android", "com.facebook.katana" }; @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.journal_entry_menu, menu); // Set up ShareActionProvider's default share intent MenuItem shareItem = menu.findItem(R.id.action_share); if (shareItem instanceof SupportMenuItem) { mShareActionProvider = new ShareActionProvider(this); mShareActionProvider.setShareIntent(ShareUtils.share(mJournalEntry)); mShareActionProvider.setIntentFilter(Arrays.asList(INTENT_FILTER)); mShareActionProvider.setShowHistory(false); ((SupportMenuItem) shareItem).setSupportActionProvider(mShareActionProvider); } return super.onCreateOptionsMenu(menu); } 
  • Obtener imagen uri de picasso?
  • Icono personalizado de Android ShareActionProvider?
  • Estilo de menú ShareActionProvider
  • Cómo diseñar el Share Action Provider en Android
  • Cómo eliminar YourSelf de la lista ShareActionProvider
  • Comparte el menú usando android.support.v7 no muestra los iconos de las aplicaciones
  • Compartir imagen con ShareActionProvider de Picasso
  • onPrepareSubMenu en un ActionProvider personalizado nunca llamado
  • Tamaño del problema de ShareAction en ActionBar con ShareActionProvider-v7
  • ShareActionProvider no funciona cuando showAsAction = ifRoom
  • ShareActionProvider no se puede hacer clic y no se procesa correctamente en el primer procesamiento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.