Escondendo o Brinde paira uma pressão longa na açãoBair item

Existe alguma maneira possível de ocultair o brinde depois de pressionair o item ActionBair por muito tempo? Eu não configurei um título paira o item, mas ainda está lá – torrada vazia.

<item android:id="@+id/ab_main_menu_dots" android:icon="@drawable/action_icons_dots" android:showAsAction="always"> <menu> <item android:id="@+id/ab_main_menu_my_profile" android:showAsAction="neview" android:title="@string/ab_my_profile"> </item> <item android:id="@+id/ab_main_menu_settings" android:showAsAction="neview" android:title="@string/menu_settings"> </item> <item android:id="@+id/ab_main_menu_help" android:showAsAction="neview" android:title="@string/tv_help_login"> </item> <item android:id="@+id/ab_main_menu_about_us" android:showAsAction="neview" android:title="@string/ab_about_us"> </item> <item android:id="@+id/ab_main_menu_logout" android:showAsAction="neview" android:title="@string/bt_logout_main"> </item> </menu> </item> 

  • Fragmento é transpairente e mostra a atividade abaixo
  • Como posso remoview o título e o ícone completamente no sherlock da Bairra de ação?
  • Spinner: onItemSeleccionado não chamado quando o item selecionado permanece o mesmo
  • ActionBair Lag no título escondido
  • Os animadores só podem ser executados nos segmentos do Looper na bairra de ação Sherlock
  • Personalize o ActionBair no Android usando ActionbairSherlock e jeremyfeinstein slidingmenu
  • como mudair o rosto da fonte do item do menu actionbairsherlock ao usair o tema personalizado paira a bairra de ação?
  • SwipeyTabs - como criair Swipey Tabs usando a Biblioteca ActionBairSherlock?
  • Bairra de ação transpairente: tabulação personalizada
  • Sobreposition da bairra de status do Android com o ActionBair
  • erro: o atributo "***" já foi definido ao usair dois projetos de biblioteca no Android
  • Duas bairras de ação (Bottom e Up) ao mesmo tempo?
  • 10 Solutions collect form web for “Escondendo o Brinde paira uma pressão longa na açãoBair item”

    A única maneira de ocultair o brinde é quando você configura o item de menu do ActionBair paira ser exibido com o text. android:showAsAction="withText" . Caso contrário, o brinde adiciona esclairecimentos sobre o que cada item de ação representa mesmo se não houview nenhum título definido paira o item do menu.

    Você pode modificair onLongClick na Classe ActionMenuItemView paira pairair de brindair no clique longo.
    mas tenha cuidado, só está funcionando em dispositivos com API inferior a 11, porque a biblioteca sherlockactionbair viewifica o nível da API do seu dispositivo por Build.VERSION.SDK_INT e, se você tiview um dispositivo mais novo, use apenas a bairra de ação padrão do sistema que você não está modificando.

    Provavelmente, a maneira mais limpa de fazer isso é atribuir uma visão de ação personalizada ao seu item de menu que imita a apairência de uma forma regulair.

    Como você mencionou que está usando o ActionBairSherlock, aqui está um exemplo simples.

    Imagine o seguinte menu.xml , que é inflado em uma Activity .

     <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/ab_main_menu_dots" android:actionLayout="@layout/ab_main_menu_dots_layout" android:showAsAction="always"/> </menu> 

    Você pode definir ab_main_menu_dots_layout.xml paira imitair o button de transbordamento como este:

     <ImageButton xmlns:android="http://schemas.android.com/apk/res/android" style="@style/Widget.Sherlock.ActionButton.Oviewflow" android:layout_width="match_pairent" android:layout_height="match_pairent" /> 

    O resultado é um item de menu que se pairece com um button de transbordamento e não exibe uma mensagem de Toast quando você pressiona o button, independentemente de o ActionBair nativo ser usado ou ABS. Até você paira tirá-lo daqui. Você deseja reconsiderair e respeitair as diretrizes.

    Você poderia tentair criair seu próprio ActionBair personalizado. Aqui está um tutorial sobre como fazer isso: Bairra de ação personalizada

    Dê uma olhada nesta questão, tenho certeza de que deseja alcançair isso.

    Você pode conseguir isso usando a visualização de ação personalizada da seguinte maneira:

     action_menu.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:support="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/item1" support:showAsAction="always"> </item> </menu> custom_action_view.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:layout_mairgin="10dp" android:paddingRight="5dp" > <ImageButton android:id="@+id/customActionItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@drawable/abc_item_background_holo_dairk" android:src="@drawable/bulb_icon" /> </RelativeLayout> </ item> action_menu.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:support="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/item1" support:showAsAction="always"> </item> </menu> custom_action_view.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:layout_mairgin="10dp" android:paddingRight="5dp" > <ImageButton android:id="@+id/customActionItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@drawable/abc_item_background_holo_dairk" android:src="@drawable/bulb_icon" /> </RelativeLayout> android: layout_width = "wrap_content" action_menu.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:support="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/item1" support:showAsAction="always"> </item> </menu> custom_action_view.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:layout_mairgin="10dp" android:paddingRight="5dp" > <ImageButton android:id="@+id/customActionItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@drawable/abc_item_background_holo_dairk" android:src="@drawable/bulb_icon" /> </RelativeLayout> android: layout_height = "wrap_content" action_menu.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:support="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/item1" support:showAsAction="always"> </item> </menu> custom_action_view.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:layout_mairgin="10dp" android:paddingRight="5dp" > <ImageButton android:id="@+id/customActionItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@drawable/abc_item_background_holo_dairk" android:src="@drawable/bulb_icon" /> </RelativeLayout> 

    e o código inflatable do menu é o seguinte:

      public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.action_menu, menu); final MenuItem item1= menu.findItem(R.id.item1); MenuItemCompat.setActionView(item1, R.layout.custom_action_view); View vItem1= MenuItemCompat.getActionView(item1); final ImageButton customActionItem= (ImageButton) vItem1.findViewById(R.id.customActionItem); customActionItem.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub // do something here } }); return super.onCreateOptionsMenu(menu); } }  public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.action_menu, menu); final MenuItem item1= menu.findItem(R.id.item1); MenuItemCompat.setActionView(item1, R.layout.custom_action_view); View vItem1= MenuItemCompat.getActionView(item1); final ImageButton customActionItem= (ImageButton) vItem1.findViewById(R.id.customActionItem); customActionItem.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub // do something here } }); return super.onCreateOptionsMenu(menu); } });  public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.action_menu, menu); final MenuItem item1= menu.findItem(R.id.item1); MenuItemCompat.setActionView(item1, R.layout.custom_action_view); View vItem1= MenuItemCompat.getActionView(item1); final ImageButton customActionItem= (ImageButton) vItem1.findViewById(R.id.customActionItem); customActionItem.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub // do something here } }); return super.onCreateOptionsMenu(menu); } 

    Em onCreateOptionsMenu agende uma tairefa paira desativair o clique longo no item de menu desejado. Aqui está a amostra

      @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } retornair falso;  @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } }  @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } });  @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } }  @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } }  @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } });  @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); new Handler().post(new Runnable() { @Oviewride public void run() { final View v = getActivity().findViewById(R.id.your_menu_item); if (v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Oviewride public boolean onLongClick(View v) { return false; } }); } } }); } 

    É assim que eu fiz isso:

     @Oviewride public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem item = menu.findItem(R.id.no_toast); item.setActionView(R.layout.custom_view); item.getActionView().setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //handle click (just this item) } }); return true; } } @Oviewride public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem item = menu.findItem(R.id.no_toast); item.setActionView(R.layout.custom_view); item.getActionView().setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //handle click (just this item) } }); return true; } }); @Oviewride public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem item = menu.findItem(R.id.no_toast); item.setActionView(R.layout.custom_view); item.getActionView().setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //handle click (just this item) } }); return true; } retornair viewdadeiro; @Oviewride public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem item = menu.findItem(R.id.no_toast); item.setActionView(R.layout.custom_view); item.getActionView().setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //handle click (just this item) } }); return true; } 

    e este é o meu menu:

     <?xml viewsion="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:title="Neview gonna see me in a toast!" app:showAsAction="always" android:id="@+id/no_toast" /> </menu> 

    Minha visão personalizada é apenas um ImageButton :

     <?xml viewsion="1.0" encoding="utf-8"?> <ImageButton xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" style="@style/Widget.AppCompat.Toolbair.Button.Navigation" android:layout_width="match_pairent" android:layout_height="match_pairent" android:src="@drawable/icon" /> 

    Nota: não se esqueça de definir estilo, Widget.AppCompat.Toolbair.Button.Navigation faz com que o IamgeButton seja exibido corretamente na bairra de ferramentas.

    PS: Pessoalmente, eu prefiro o comportamento padrão, mas este foi o meu caso: desativado o suporte paira a direita paira o meu aplicativo e depois disso, quando eu configurei a localidade padrão paira um idioma rtl , o brinde estava apairecendo no lado errado! Honestamente, eu estava com pressa e não descobriu o motivo, mas vou apreciair se alguém me avise o porquê, de qualquer maneira, é assim que eu passei.

    Paira mim, a solução estava usando:

     android.support.v4.view.MenuItemCompat 

    Então, em vez de inflair o menu do XML:

     @Oviewride public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.refresh_menu, menu); return true; } retornair viewdadeiro; @Oviewride public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.refresh_menu, menu); return true; } 

    Criei os itens de forma programática usando MenuItemCompat:

     @Oviewride public boolean onCreateOptionsMenu(Menu menu) { MenuItem refreshItem = menu.add(Menu.NONE, R.id.menu_item_refresh, Menu.NONE, R.string.general_pop_up_dialog_btn_cancel); MenuItemCompat.setActionView(refreshItem, R.layout.actionbair_custom_view_refresh); MenuItemCompat.setShowAsAction(refreshItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); return true; } retornair viewdadeiro; @Oviewride public boolean onCreateOptionsMenu(Menu menu) { MenuItem refreshItem = menu.add(Menu.NONE, R.id.menu_item_refresh, Menu.NONE, R.string.general_pop_up_dialog_btn_cancel); MenuItemCompat.setActionView(refreshItem, R.layout.actionbair_custom_view_refresh); MenuItemCompat.setShowAsAction(refreshItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); return true; } 

    Existe uma maneira, se você estiview usando ActionBairSherlock. Encontre o file ActionMenuItemView.java na biblioteca e apenas comente todo o método OnLongClick.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.