首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 計算機界面快速搭建:GridLayout 最佳實踐

     編輯:程式設計綜合問答

需求

實現類似系統計算機的按鈕網格佈局,嘗試兩小時未果。

目標效果

最簡方案:GridLayout

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="4"
    android:rowCount="5"
    android:alignmentMode="alignMargins"
    android:useDefaultMargins="true">

    <!-- 第 1 行:顯示區 -->
    <TextView android:layout_columnSpan="4" android:text="0" android:gravity="end|center_vertical" />

    <!-- 第 2-5 行:按鈕 -->
    <Button android:text="C" />
    <Button android:text="±" />
    <Button android:text="%" />
    <Button android:text="÷" />
    <Button android:text="7" />
    <Button android:text="8" />
    <Button android:text="9" />
    <Button android:text="×" />
    <Button android:text="4" />
    <Button android:text="5" />
    <Button android:text="6" />
    <Button android:text="-" />
    <Button android:text="1" />
    <Button android:text="2" />
    <Button android:text="3" />
    <Button android:text="+" />
    <Button android:layout_rowSpan="2" android:text="0" />
    <Button android:text="." />
    <Button android:text="=" />
</GridLayout>

優勢

  • 聲明式 XML,無需 Java 代碼計算座標;
  • 自動均分寬高,適配不同屏幕;
  • 支持 layout_rowSpan/layout_columnSpan 合併單元格(如 0 鍵佔兩行)。

替代方案

  • LinearLayout 嵌套(權重分配);
  • TableLayout(較老舊);
  • ConstraintLayout(鏈式約束,功能更強但學習曲線稍高)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved