10

W nowym projekcie Material Design (przy użyciu AppCompat) próbuję wyrównać niektóre ikony akcji z ikoną szuflady nowego paska narzędzi. Coś jak:Wyrównanie ikony do ikony paska narzędzi - Android Material Design

enter image description here

myślę, szukam we wszystkich prawidłowo metryki ...

Touch Target Size

enter image description here

Problem polega na tym, że nie można go idealnie wyrównać , ponieważ po tym lewym wypełnieniu 16 pikseli ikony powinny się zacząć, ale sama ikona ma również "dopełnienie" (ikona z materiału github), na przykład:

enter image description here

Może jest głupio, ale nie wiem, czego mi brakuje. Jak mogę wziąć pod uwagę wyściółkę wewnątrz obrazu, aby właściwie wyrównać? Mam taki sam problem z wyrównaniem przycisków radiowych lub pola wyboru z tą ikoną paska działań.

Próbowałem ten kawałek kodu:

<RelativeLayout 
    android:id="@+id/image_button" 
    android:layout_width="72dp" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:layout_width="32dp" 
     android:layout_height="48dp" 
     android:layout_marginLeft="16dp" 
     android:layout_marginStart="16dp" 
     android:src="@drawable/ic_label_grey600_48dp" /> 
</RelativeLayout> 

Ale nie wygląda wyrównać do mnie (jak w pierwszym zrzucie napisałem). Tutaj też wygląda doskonale align:

enter image description here

I wygląda lubi bierze w rachunku czymś więcej 72px 16px i padding.


UPDATE

Ok, pozwól mi pokazać ci faceci więcej przykładów i jakiś kod. Obrazowanie, że mój element listy ma przycisk radiowy z tekstem etykiety.

<RadioButton 
    style="?android:textAppearanceMedium" 
    android:layout_width="wrap_content" 
    android:layout_height="48dp" 
    android:layout_marginLeft="16dp" 
    android:paddingLeft="32dp" 
    android:singleLine="true"/> 

Wynik:

enter image description here

enter image description here

ja właściwie nie patrz reguła ustawić marginLeft i paddingLeft do właściwych wartości, bez użycia przycisku niestandardowego jako przycisk radiowy (i znając wymiary tego przycisku) ... < - Która jest zła opcja, ponieważ przycisk koloru jest pobierany z mojego akcentu kolorów (nowe rzeczy z materiału).

wygląda również jak nowej aplikacji Gmail stoi kilka kwestii wyrównania (patrz kiedy wybrać email, 1 nie jest wyrównany już z tytułem mail):

enter image description here

enter image description here

+0

Może opublikować wersję jako zrzut ekranu i kodu, dzięki czemu możemy zobaczyć, co faktycznie wymyślił? –

+0

Zrobiłem przykład za pomocą przycisku radiowego. Wyrównanie tekstu za pomocą paska akcji jest w porządku (nie dotyczy etykiety radiobutton). Jak już powiedziałem, pojawiają się również problemy z wyrównaniem ikon (nie znasz wewnętrznego dopełnienia). –

+0

W swoim adapterze, w newView/bindView, dlaczego nie ustawić ręcznie marginesu ikony? – Codeversed

Odpowiedz

2

Problem polega na tym, że nie mogę idealnie wyrównać, ponieważ po tym lewej padding 16px, ikony powinny rozpocząć, ale sama ikona ma również niektóre "dopełnienie" (ikona z materiału github)

Tak, ikona musi mieć wypełnienie i różni się w zależności od rozdzielczości ekranu, która będzie wyświetlana. Wypełnienie dla różnych gęstości ekran:
MDPI             4 piksele * 1,0 = 4 piksele
hdpi               4 piksele * 1,5 = 6px
xhdpi           4 piksele * 2,0 = 8px
xxhd pi       4px * 3,0 = 12px
xxxhdpi   4px * 4,0 = 16px
To wyściółka zawarte w ikonę rozciągliwej i nie należy go usunąć. icon live area

enter image description here

http://www.google.com/design/spec/style/icons.html#icons-system-icons

+0

Dzięki! Szukałem tego. Czy ... Czy ma sens utworzenie stylu (w folderach res), który w zależności od rozdzielczości dopełnienie będzie inne? A co z przykładem mojego przycisku radiowego? Czy przestrzega tych zasad? –

+0

Nie mogę Ci teraz odpowiedzieć, ponieważ nie przetestowałem tego. Kolejne dni będę musiał wyrównać kilka przycisków opcji, więc dam ci znać. Pamiętaj, że aplikacje Google, które mają materialne projekty nadal mają problemy z wyrównaniem i widżetami AppCompat, mogą mieć pewne problemy. – vovahost

Powiązane problemy