řešil jsem problém s layoutem v Androidu, kdy jsem chtěl pomocí layoutů vytvořit tabulku NxN s
rámečky. Jak jistě víte, Google za ta léta nepochopil, že Border je základní vlastnost veškerých
existujících elementů...
Existuje několik způsobů, jak rámečky vytvořit. Někdo to dělá obrázkem, někdo kreslením shape
(canvasem), někdo paddingem/marginem a vnořenými layouty. Vzhledem k tomu, že stejně potřebuji akce
na daných buňkách, zvolil jsem způsob paddingu layoutů. Každá buňka tabulky pak má být stejně velká
jako ostatní.
Všechny elementy mají layout_witdh/height na fill_parrent a layout_weight=1
Uvedu jen schématické řešení (i kvůli tomu, že to generuju a nemám to v XML)
Např. pro tabulku 2x2:
- LinearLayout/orientation=vertical
- LinearLayout/orientation=horizontal,backgroundColor=black
- LinearLayout/padding=1
- AnyElement(u mě GridLayout)/backgroundColor=white
- AnyElement(u mě GridLayout)/backgroundColor=white
- LinearLayout/orientation=horizontal,backgroundColor=black
- LinearLayout/padding=1
- AnyElement(u mě GridLayout)/backgroundColor=white
- AnyElement(u mě GridLayout)/backgroundColor=white
Podobným způsobem (důležité je to layout_weight) se dají řešit sloupce a řádky. Já to původně
zkoušel pomocí TableLayoutu, ale nějak se nedařilo. Tak třeba někomu ušetřím těch pár minut zkoumání.
Honza Pěček