Grid layout: Basic concepts of grid layout — CSS: Cascading Style Sheets

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Android: GridLayout

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠΏΠ»Π°Ρ‡Π΅Π½Π° кошками — всСмирно извСстными производитСлями котят.

Если ΡΡ‚Π°Ρ‚ΡŒΡ Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Цифровая ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°

Π’ Android 4.0 появился Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΌΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ GridLayout (Ρ€Π°Π·Π΄Π΅Π» Layouts Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов). На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° TableLayout. Но Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ½ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π΅Π΅. И ΠΎΡ‡Π΅Π½ΡŒ рСкомСндуСтся ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² своих Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

ПозТС Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ совмСстимости Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ класс android.support.v7.widget.GridLayout, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ для старых устройств. Найти Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ AppCompat.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° относится ΠΊ классу android.widget.GridLayout ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ряды, ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΊΠ°ΠΊ Π² TableLayout, Π½ΠΎ ΠΏΡ€ΠΈ этом элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Π’ GridLayout для любого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ строку ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, ΠΈ Π² этом мСстС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½.

Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ элСмСнт для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π½Π΅ понадобится, это Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… ячССк, Π³Π΄Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° нСсколько ячССк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΎΠ΄Π½Ρƒ ячСйку ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ вСса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π½Π΅ сработаСт Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… прСдставлСниях GridLayout. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ layout_gravity.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ layout_column ΠΈ layout_columnSpan, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для указания самой Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ количСства Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π’Π°ΠΊΠΆΠ΅ доступны Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ layout_row ΠΈ layout_rowSpan.

Для Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ layout_height ΠΈ layout_width, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ wrap_content.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ рядов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ android:columnCount=»number»

ΠΈ android:rowCount=»number».

Для дСмонстрации создадим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ прСимущСства Π½ΠΎΠ²ΠΎΠ³ΠΎ шаблона.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ панСль Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… модСлях ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Если Π²Ρ‹ посмотритС Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ панСль, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ клавиш ΠΈΠΌΠ΅Π΅Ρ‚ больший Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ вытянуты Π² Π΄Π»ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ старыми способами — придётся постоянно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ конструкции LinearLayout, TableLayout ΠΈ Π΄Ρ€.

Но, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ GridLayout. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ схоТС с LinearLayout — Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта.

Для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ссли Π½Π°Ρ‡Π½Π΅ΠΌ с клавиши слэша (/) с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 4 ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ. Выбирая Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ число ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ для автоматичСского пСрСноса Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ряд. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°, отцСнтрированая ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ.

Π‘Π°ΠΌΠ° Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ вСсь ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ экрана.

Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ совсСм ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ (ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту) ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Богласно Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠ»Π°Π½Ρƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для 16 ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ…

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ XML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° для нашСй Ρ†Π΅Π»ΠΈ:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:columnCount="4"
    android:orientation="horizontal" >
    <Button android:text="1" />
    <Button android:text="2" />
    <Button android:text="3" />
    <Button android:text="4" />
    <Button android:text="5" />
    <Button android:text="6" />
    <Button android:text="7" />
    <Button android:text="8" />
    <Button android:text="9" />
    <Button android:text="10" />
    <Button android:text="11" />
    <Button android:text="12" />
    <Button android:text="13" />
    <Button android:text="14" />
    <Button android:text="15" />
    <Button android:text="16" />

А Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ° Π² графичСском Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅:

ΠŸΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ android:columnCount, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Π΅Π΄Ρ‘Ρ‚ сСбя шаблон ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… значСниях.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ займёмся Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ настройкой. НапримСр, пСрвая клавиша ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ — символ слСша (/) Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Клавиша (+) ΠΈΠ΄Ρ‘Ρ‚ послС клавиши (9) ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… ряда. Клавиша (0) Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Клавиша (=) Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. ВнСсём Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ измСнСния:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:columnCount="4"
    android:orientation="horizontal" >
    
    <Button
        android:layout_column="3"
        android:text="/" />
    <Button android:text="1" />
    <Button android:text="2" />
    <Button android:text="3" />
    <Button android:text="*" />
    <Button android:text="4" />
    <Button android:text="5" />
    <Button android:text="6" />
    <Button android:text="-" />
    <Button android:text="7" />
    <Button android:text="8" />
    <Button android:text="9" />
    <Button
        android:layout_rowSpan="3"
        android:text="+" />
    <Button
        android:layout_columnSpan="2"
        android:text="0" />
    <Button android:text="00" />
    <Button
        android:layout_columnSpan="3"
        android:text="=" />
</GridLayout>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:

Π­Ρ‚ΠΎ Π½Π΅ совсСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Π’Ρ€ΠΎΠ΄Π΅ клавиши Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ сСбС мСсто, Π½ΠΎ Π½Π΅ Ρ€Π°ΡΡ‚ΡΠ½ΡƒΠ»ΠΈΡΡŒ Π΄ΠΎ Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Π˜ΡΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π½Π°ΠΌ ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ layout_gravity. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Ρƒ клавиш, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒ:

<Button
    android:layout_gravity="fill"
    android:layout_rowSpan="3"
    android:text="+" />
<Button
    android:layout_gravity="fill"
    android:layout_columnSpan="2"
    android:text="0" />
<Button
    android:layout_gravity="fill"
    android:layout_columnSpan="3"
    android:text="=" />

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π΄ΡƒΠ΅Ρ‚ Π³Π»Π°Π·:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ссли Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для чтСния.

Π Π΅ΠΊΠ»Π°ΠΌΠ°

Π“Ρ€ΠΈΠ΄-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° CSS: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CSS Grid Layout