Es una libreria que permite tener un menu horizontal con scroll, basado en la clase RecyclerView
demo 1 | demo 2 | demo 3 |
---|---|---|
demo 4 | demo 5 | demo 6 |
---|---|---|
importe la libreria a su proyecto android con la opcion "import module" en android studio
<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" />
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();
}
});
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 |