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

Android 自訂標題列:用 LinearLayout 包裝 Button + TextView 取代 TextView 偽裝

     編輯:程式設計綜合問答

錯誤做法

用單一 TextView 做標題列背景,再嘗試用 layout_x/layout_y 絕對定位放置 Button,但 TextView 不支援子 View,Button 自然不顯示。

正確架構:自訂版面設為 ActionBar/Toolbar customView

<!-- res/layout/custom_titlebar.xml -->
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/titlebar"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:padding="8dp">

    <Button
        android:id="@+id/save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save" />

    <TextView
        android:id="@+id/titleText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="標題"
        android:textSize="18sp"
        android:textColor="#FFFFFF" />

    <Button
        android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send" />

</LinearLayout>

套用到 Activity

// 在 onCreate 中
ActionBar actionBar = getActionBar(); // 或 getSupportActionBar()
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.custom_titlebar);

// 取得元件綁定事件
Button saveBtn = findViewById(R.id.save);
saveBtn.setOnClickListener(v -> { /* 儲存邏輯 */ });

現代建議

  • 改用 Toolbar (Material Design) 取代 ActionBar
  • Toolbar 直接在 XML 定義,支援選單、導航圖示、標題、子標題完整客製化
  • 主題設定 NoActionBar,自行在版面放置 Toolbar
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved