Solución:
Crea un nuevo estilo en el archivo app/src/main/res/values/styles.xml
<style name="NavigationDrawerStyle">
<item name="android:textSize">20sp</item><!-- text size in menu-->
<!-- item size in menu-->
<item name="android:listPreferredItemHeightSmall">40dp</item>
<item name="listPreferredItemHeightSmall">40dp</item>
<!-- item padding left in menu-->
<item name="android:listPreferredItemPaddingLeft">8dp</item>
<item name="listPreferredItemPaddingLeft">8dp</item>
<!-- item padding right in menu-->
<item name="android:listPreferredItemPaddingRight">8dp</item>
<item name="listPreferredItemPaddingRight">8dp</item>
</style>
Agrégalo a tu main_layout.xml
<android.support.design.widget.NavigationView
...
app:theme="@style/NavigationDrawerStyle"
....>
</android.support.design.widget.NavigationView>
Todos los parámetros de los elementos de navegación (que puede cambiar) se encuentran aquí (ruta al archivo ...sdkextrasandroidsupportdesignreslayoutdesign_navigation_item.xml
)
design_navigation_item.xml
<android.support.design.internal.NavigationMenuItemView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?attr/listPreferredItemHeightSmall"
android:paddingLeft="?attr/listPreferredItemPaddingLeft"
android:paddingRight="?attr/listPreferredItemPaddingRight"
android:drawablePadding="@dimen/navigation_icon_padding"
android:gravity="center_vertical|start"
android:maxLines="1"
android:fontFamily="sans-serif-thin"
android:textSize="22sp"
android:textAppearance="?attr/textAppearanceListItem" />
También puedes anular *.xml
archivo (copiar archivo de ...sdkextrasandroidsupportdesignreslayoutdesign_navigation_item.xml
), solo en tu app/src/main/res/layout
carpeta crea un diseño con el mismo nombre design_navigation_item.xml
.
Todos los diseños que pueden anularse se encuentran aquí ...sdkextrasandroidsupportdesignreslayout
design_layout_snackbar.xml
design_layout_snackbar_include.xml
design_layout_tab_icon.xml
design_layout_tab_text.xml
design_navigation_item.xml
design_navigation_item_header.xml
design_navigation_item_separator.xml
design_navigation_item_subheader.xml
design_navigation_menu.xml
[UPDATE] Cada versión de com.android.support:design-{version}
lib tiene diferentes elementos para anular. Compruebe todo lo que necesita en
[UPDATE 04/14/2020]
Si esta usando com.google.android.material.navigation.NavigationView
luego abra la clase y verá:
public NavigationView(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, R.attr.navigationViewStyle);
}
Entonces puedes usar attr navigationViewStyle
para configurar su propio estilo para NavigationView a través del tema de su aplicación:
NB: el tema principal de AppTheme debería ser Theme.MaterialComponents
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
...
<item name="navigationViewStyle">@style/AppNavigationViewStyle</item>
...
</style>
<style name="AppNavigationViewStyle" parent="Widget.MaterialComponents.NavigationView">
<item name="itemTextAppearance">@style/AppNavigationViewItemTextAppearance</item>
</style>
<style name="AppNavigationViewItemTextAppearance" parent="@style/TextAppearance.MaterialComponents.Subtitle2">
<item name="android:textSize">18sp</item>
</style>
Simplemente abra el tema principal para ver todo <item name
attrs para anular
Desde Android Support Library 22.2.1, Google ha cambiado el tamaño de texto predeterminado de los elementos en NavigationView
de 16 a 14 sp, que se adapta bien a las directrices de Material Design. Sin embargo, en algunos casos (por ejemplo, cuando desea admitir el idioma chino), parece que un tamaño de texto más grande es mejor. La solución es simple:
- agregar
app:theme="@style/yourStyle.Drawer"
para ustedNavigationView
en su layout.xml - en styles.xml, agregue
android:textSize="16sp"
de modayourStyle.Drawer
Puede personalizar todo, desde el color del texto hasta el tamaño y la fuente en su estilo.xml
<style name="NavDrawerTextStyle" parent="Base.TextAppearance.AppCompat">
<item name="android:textColor">@color/colorPrimaryDark</item>
<item name="android:textSize">16sp</item>
<item name="android:textStyle">bold</item>
</style>
y luego en tu NavigationView
:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.NavigationView
...
android:itemTextAppearance="@style/NavDrawerTextStyle"
/>