Crea tu propia barra de acción en android

Tengo algunos problemas con la barra de acción en android. Quiero tener algunos iconos en el lado izquierdo y en el lado derecho. En el lado izquierdo quiero tener 2 iconos y texto y en el lado derecho me gustaría tener 6 iconos, pero cuando el texto es muy largo quiero ocultar algunos iconos en el lado derecho. En la barra de acción estándar sólo puedo añadir elementos de derecha a izquierda, así que decido crear una barra de acción propia. ¿Cómo puedo empezar? Lo que necesito saber para hacer eso. ¿Me puede dar algunos consejos o ejemplos?

Es muy sencillo. Cree una nueva clase que se extenderá desde algún diseño. Inflate xml que tendrá iconos y botones. Y hacer que los métodos para la lógica show \ hide \ set oyentes y así sucesivamente. Lo hice temprano, pero ahora puedo decir que no es tan buena idea. Hay directrices y muy importante para crear aplicaciones como debe ser.

Ejemplo de mi antiguo proyecto:

public class ActionBar extends RelativeLayout { private ToggleButton buttonSave; private ToggleButton buttonClear; private ToggleButton buttonHelp; private ToggleButton buttonBack; private FrameLayout sepparator; private TextView textview; private ImageView imageViewIcon; public ActionBar(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); layoutInflater.inflate(R.layout.actionbar, this); initView(); } private void initView () { buttonSave = (ToggleButton) findViewById(R.id.actionbar_togglebutton_save); buttonBack = (ToggleButton) findViewById(R.id.actionbar_togglebutton_back); buttonHelp = (ToggleButton) findViewById(R.id.actionbar_togglebutton_help); textview = (TextView) findViewById(R.id.actionbar_textview); imageViewIcon = (ImageView) findViewById(R.id.actionbar_imageview_icon); buttonClear = (ToggleButton) findViewById(R.id.actionbar_togglebutton_clear); sepparator = (FrameLayout) findViewById(R.id.actionbar_sepparator); } public void setOnSaveButtonClickListener (OnClickListener listener) { buttonSave.setOnClickListener(listener); } public void setSaveButtonDrawable (Drawable d) { buttonSave.setBackgroundDrawable(d); buttonSave.setVisibility(View.VISIBLE); } public void setOnHelpButtonClickListener (OnClickListener listener) { buttonHelp.setOnClickListener(listener); } public void setHelpButtonDrawable (Drawable d) { buttonHelp.setBackgroundDrawable(d); buttonHelp.setVisibility(View.VISIBLE); } public void setOnBackButtonClickListener (OnClickListener listener) { buttonBack.setOnClickListener(listener); } public void setBackButtonDrawable (Drawable d) { buttonBack.setBackgroundDrawable(d); buttonBack.setVisibility(View.VISIBLE); } public void setClearButtonDrawable (Drawable d) { buttonClear.setBackgroundDrawable(d); buttonClear.setVisibility(View.VISIBLE); } public void setOnClearButtonClickListener (OnClickListener listener) { buttonClear.setOnClickListener(listener); } public void setTitle (String value) { textview.setText(value); } public void setIcon (int resId) { imageViewIcon.setImageDrawable(getResources().getDrawable(resId)); } public void setOnIconClickListener (OnClickListener listener) { imageViewIcon.setOnClickListener(listener); } public void setSaveButtonChecked (boolean value) { buttonSave.setChecked(value); } public void setSeporatorVisible (int visibility) { sepparator.setVisibility(visibility); } public void setOnIconListener (OnClickListener listener) { imageViewIcon.setOnClickListener(listener); } } 

XML:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="60dp" android:background="@drawable/avtion_bar_bg" > <ToggleButton android:id="@+id/actionbar_togglebutton_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:visibility="gone" android:background="@drawable/arrow_back_button_drawable" android:textOn="" android:textOff="" /> <ImageView android:id="@+id/actionbar_imageview_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_toRightOf="@id/actionbar_togglebutton_back" android:layout_marginLeft="19.1dp"/> <TextView android:id="@+id/actionbar_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:textColor="@color/actionbar_text" android:textSize="16dp" android:layout_toRightOf="@id/actionbar_imageview_icon" android:layout_marginLeft="56.1dp" /> <RelativeLayout android:id="@+id/actionbar_relativelayout_saveconteiner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true"> <ToggleButton android:id="@+id/actionbar_togglebutton_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/save_btn_drawable" android:textOn="" android:textOff=""/> <FrameLayout android:id="@+id/actionbar_sepparator" android:layout_width="0.5dp" android:background="@color/white25transpert" android:layout_toLeftOf="@id/actionbar_togglebutton_save" android:layout_height="35dp" android:layout_centerInParent="true"> </FrameLayout> <ToggleButton android:id="@+id/actionbar_togglebutton_clear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:layout_toLeftOf="@id/actionbar_sepparator" android:layout_marginRight="4dp" android:layout_centerVertical="true" android:background="@drawable/clear_button_drawable" android:textOn="" android:textOff=""/> </RelativeLayout> <ToggleButton android:id="@+id/actionbar_togglebutton_help" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/save_btn_drawable" android:layout_marginRight="10dp" android:textOn="" android:textOff=""/> </RelativeLayout> 

¡Buena suerte!

  • Colocar la vista dentro de FrameLayout en Android
  • Android GridView de columna, anchura variable como la aplicación GooglePlus
  • Deshacerse de la translucidez del navegador de navegación de Android
  • ¿Qué es la etiqueta <view> en el layout xml utilizado para?
  • Configuración del parámetro del diseño de android mediante programación
  • Android: Creación de botones en fila
  • Cómo deshabilitar el clic de WebView?
  • Cómo alinear ImageView y TextView alinear a la derecha en un diseño lineal
  • Android - borde rectangular redondo para diseños
  • ¿Cómo tener un pie de página fijo con scrollview en android?
  • Teclado EditarEdición de Android no mostrado en Fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.