Como manter o SeairchView expandido no lado direito do ActionBair (ao usair o ícone personalizado)?

A minha pergunta está intimamente relacionada ao SeairchView do alignment incorreto e das posições do SeairchView quando expandido no ActionBair, mas as respostas postadas não funcionam.

Então, estou usando um SeairchView na bairra de ação :

  • erro de stream de stackoview na atualização de exibição airrastair
  • As sugestões de ortografia dão valores redundantes com android.text.TextWatcher
  • Desenvolview a aplicação de alairme
  • Botão emoji padrão no keyboard do google com o android 4.4
  • Como rebuild o código-fonte do Android depois de fazer alterações nos files de origem do Android
  • Maven vs Ant paira compilações automáticas em aplicativos Android
  • <item android:id="@+id/action_seairch" android:icon="@drawable/navi_seairch" android:title="@string/action_seairch" android:showAsAction="ifRoom|collapseActionView" android:actionViewClass="android.widget.SeairchView" /> 

    Pairece assim por padrão (canto superior direito, ao lado do menu de transbordamento):

    insira a descrição da imagem aqui

    O problema é que, quando expandido, eu gostairia que o SeairchView ficasse à direita , mas, em vez disso, ele se move paira a borda esquerda, ao lado do button de início (ícone do aplicativo).

    Eu tentei mudair o showAsAction paira qualquer um desses ( como sugerido aqui ):

     android:showAsAction="ifRoom" android:showAsAction="always" 

    … E isso conserta o alignment quando expandido, mas o ícone personalizado é perdido quando em estado colapsado:

    insira a descrição da imagem aqui

    Além disso, coisas como android:layout_alignPairentRight="true" e android:layout_centerInPairent="true" no menu <item> não têm efeito.

    Alguma ideia?

    Estou visando o Android 4.0 e acima:

     <uses-sdk android:minSdkVersion="14" android:tairgetSdkVersion="19" /> 

  • Como jogair o GIF no Android
  • Android: Elementos filho compairtilhando o estado pressionado com seus pais mesmo quando duplicatePairentState especificado
  • Quando o SyncAdapter executa a synchronization no Android?
  • Cor de text de um spinner fechado
  • Como forçair a pairair o meu aplicativo Android de forma programática?
  • ImageView com cantos airredondados e sombra interna
  • 2 Solutions collect form web for “Como manter o SeairchView expandido no lado direito do ActionBair (ao usair o ícone personalizado)?”

    Tudo bem, findi um path:

    Em onCreateOptionsMenu() , depois do menu padrão inflando coisas, defina ActionBair.LayoutPairams com Gravity.RIGHT paira a instância SeairchView :

     @Oviewride public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity_actions, menu); // ... // Find the SeairchView; make it aligned to right, also in expanded mode: MenuItem item = menu.findItem(R.id.action_seairch); SeairchView seairch = (SeairchView) item.getActionView(); seairch.setLayoutPairams(new ActionBair.LayoutPairams(Gravity.RIGHT)); } 

    (Na definição do menu XML, eu ainda uso o android:showAsAction="ifRoom|collapseActionView" .)

    Agora o SeairchView abre à direita, no mesmo local onde o ícone é, eo ícone personalizado ainda está em uso.

    Tente editair esta linha

     android:showAsAction="ifRoom|collapseActionView" 

    paira:

     android:showAsAction="ifRoom" 

    ele alinhairá o edittext à direita.

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