Adición de vista personalizada a una barra de herramientas

Estoy tratando de agregar una vista personalizada a la nueva barra de herramientas (Lollipop). Pero de alguna manera la vista se agrega por debajo de la barra de herramientas. Funcionaba bien cuando utilicé actionBar.setCustomView pero ahora después de migrar a la barra de herramientas, no funciona. A continuación se muestra el código. ¿Qué cambios se deben hacer?

Fragmento :

toolbar = (Toolbar) getView().findViewById(R.id.toolbar); ((ActionBarActivity) getActivity()).setSupportActionBar(toolbar); toolbar.setTitle(getString(R.string.app)); ActionBar actionBar = ((ActionBarActivity) getActivity()) .getSupportActionBar(); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); LayoutInflater inflater = (LayoutInflater) getActivity() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // inflate the view final View view = inflater.inflate(R.layout.actionbar_search, null); final ImageView searchIcon = (ImageView) view .findViewById(R.id.search_icon); final ClearableAutoCompleteTextView searchBox = (ClearableAutoCompleteTextView) view .findViewById(R.id.search_box); // start with the text view hidden in the action bar searchBox.setVisibility(View.INVISIBLE); searchIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { toggleSearch(false, view); } }); searchBox.setOnClearListener(new OnClearListener() { @Override public void onClear() { toggleSearch(true, view); } }); searchBox.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } }); toolbar.addView(view); // actionBar.setCustomView(view); // This worked previously //((ActionBarActivity)getActivity()).getSupportActionBar().setCustomView(view); //doesnt work with toolbar 

Con la barra de herramientas he conseguido lograr que así:

  setSupportActionBar(toolbar); View logo = getLayoutInflater().inflate(R.layout.view_logo, null); toolbar.addView(logo); 

O también puede agregar su vista a la barra de herramientas xml, ya que es sólo un ViewGroup. De esta manera tendrás la vista previa en el editor de diseño. No se requiere código java.

Funciona muy bien para mí.

 LayoutInflater mInflater=LayoutInflater.from(context); View mCustomView = mInflater.inflate(R.layout.toolbar_custom_view, null); toolbar.addView(mCustomView); 

Simplemente infle la vista que desea añadir pasando la vista de la barra de herramientas como segundo parámetro del método de inflado; De esta forma, la llamada a "addView" no es necesaria:

 setSupportActionBar(toolbar); View logo = getLayoutInflater().inflate(R.layout.view_logo, toolbar); 
  • ¿Cómo hacer que el menú emergente de desbordamiento evite obstruir la barra de acción?
  • Añadir diseño personalizado a ActionBar / Toolbar sin márgenes
  • Título completo de la barra de herramientas
  • Funcionalidad del botón de retroceso de la barra de herramientas
  • Estilizar la vista de búsqueda de android y la lista desplegable en la barra de acciones
  • Fragmento superpone mi barra de herramientas de AppCompat
  • Match_parent no funciona para la barra de herramientas con el diseño dentro
  • Barra de herramientas no visible en el diseño
  • Barra de herramientas dentro de CardView para crear un menú emergente (icono de desbordamiento)
  • Cómo ocultar la barra de herramientas cuando desplazamiento de contenido en android
  • Creación de una pantalla de preferencias con soporte (v21) Barra de herramientas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.