Android Material Design - nezobrazuje se ikonka pro tlačítko (button icon)
Při používání Android Material Design může nastat problém, že se nezobrazuje ikonka (icon) na začátku tlačítka (button).
Pokud použijeme tento zápis:
<Button
android:id="@+id/btn_navig"
android:icon="@drawable/icon_search"
android:iconGravity="textStart"
style="@style/ButtonOutlineIcon"
android:text="Menu" />
Tak se žádná ikonka nezobrazí.
Správně se má totiž použít namespace app, což je:
<Button
android:id="@+id/btn_navig"
app:icon="@drawable/icon_search"
app:iconGravity="textStart"
style="@style/ButtonOutlineIcon"
android:text="Menu" />
Avšak po této změně můžeme dostat vyhubováno s chybou:
Undeclared namespace prefix "app" (for attribute "icon") at [row,col {unknown-source}]: [25,31]
Řešení
Přidat do záhlaví namespace app takto:
xmlns:app="http://schemas.android.com/apk/res-auto"
Celý blok v záhlaví pak vypadá takto:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relLayout"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
A náhle se ikonka začně zobrazovat...
Další obecné tipy na závěr:
1.) Padding pro ikonku
app:iconPadding="-10dp"
2.) Barva ikonky
android:tint="@color/red"
android:tintMode="@color/blue"
3.) Radius
app:cornerRadius="8dp"
4.) Barva ohraničení (border)
app:strokeColor="@color/colorPrimary"