HorizontalScrollMenu

Additional

Language
Java
Version
2.0.1 (Mar 11, 2017)
Created
Mar 10, 2017
Updated
Apr 6, 2017 (Retired)
Owner
Darwin Morocho (darwin-morocho)
Contributor
Darwin Morocho (darwin-morocho)
1
Activity
Badge
Generate
Download
Source code

HorizontalScrollMenu

Es una libreria que permite tener un menu horizontal con scroll, basado en la clase RecyclerView

Capturas de Pantalla

demo 1 demo 2 demo 3
demo 4 demo 5 demo 6

Instalación

importe la libreria a su proyecto android con la opcion "import module" en android studio

Agregar la vista a su Layout

  <com.darwindeveloper.horizontalscrollmenulibrary.custom_views.HorizontalScrollMenuView
        android:id="@+id/horizontal_menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         />

Diseño completo

      <com.darwindeveloper.horizontalscrollmenulibrary.custom_views.HorizontalScrollMenuView
        android:id="@+id/horizontal_menu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:backgroundMenuColor="#d2d2d2"
        app:icon_height="70dp"
        app:icon_width="70dp"
        app:item_backgroundColor="@color/colorPrimary"
        app:item_colorSelected="@color/colorAccent"
        app:backgroundNotifications="@color/colorAccent"
        app:item_marginBottom="4dp"
        app:item_marginLeft="4dp"
        app:item_marginRight="4dp"
        app:item_marginTop="4dp"
        app:item_textColor="#ffffff"
        app:item_textSize="15sp" />

En sus Actividades o Fragments

Inicialice la vista y capture los eventos clic

        HorizontalScrollMenuView horizontal_menu = (HorizontalScrollMenuView) findViewById(R.id.horizontal_menu);
        viewPager = (ViewPager) findViewById(R.id.pager);


        //agregamos los items al menu
        horizontal_menu.addItem("Home", R.drawable.home_icon, true);//este elemento se marcara como seleccionado
        horizontal_menu.addItem("Account", R.drawable.round_account);
        horizontal_menu.addItem("Message", R.drawable.close_envelope);
        horizontal_menu.addItem("Downloads", R.drawable.download);
        horizontal_menu.addItem("Calendar", R.drawable.calendarw);
        horizontal_menu.addItem("Events", R.drawable.notifications,2);

        horizontal_menu.showItems();//hacemos visible los items del menu
        
        //implementamos la interface para caputar los clic en el menu
        horizontal_menu.setOnHSMenuClickListener(new HorizontalScrollMenuView.OnHSMenuClickListener() {
            @Override
            public void onHSMClick(MenuItem menuItem, int position) {
                Toast.makeText(MainActivity.this, "item " + position, Toast.LENGTH_SHORT).show();
            }
        });

Metodos

La clase HorizontalScrollMenuView dispone de los siguientes metodos para facilitar y reducir la codificacion al usuario

Metodo Descripción
void addItem(String text, int icon) agrega un nuevo item al menu (con un texto y un icono)
void addItem(String text, int icon, boolean seleted) agrega un nuevo item al menu (con un texto , un icono y la opcion de marcarlo como seleccionado)
addItem(String text, int icon, boolean seleted, int numNotifications) agrega un nuevo item al menu (con un texto , un icono y la opcion de marcarlo como seleccionado, ademas mostrara un circulo en la parte superior isquierda del icono con un numero)
void addItem(String text, int icon, int numNotifications) agrega un nuevo item al menu (con un texto y un icono, ademas mostrara un circulo en la parte superior isquierda del icono con un numero)
int getItemSeletected() etorna la posicion del item seleccionado en el menu
void editItem(int position, String text, int icon, boolean showNotifications, int numNotifications) edita un item del menu segun su posicion y otros parametros (vea el javadoc para mas informacion)
void showItems() este metodo se debe llamar despues de agregar los items en el menu
void setItemSelected(int position) cambia el item seleccionado del menu
int numItems() retorna el numero de items que tiene el menu

Para mas informacion vea el ejemplo de muestra.