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

Android TabHost ActivityGroup 子 Activity 切換時動態修改標題

     編輯:程式設計綜合問答

現狀

TabHost 內嵌 ActivityGroup,子 Activity 之間跳轉需動態改變標題欄文字。

最簡方案:隱藏系統標題,自定義標題欄佈局

  1. 主題設置無標題:android:theme="@android:style/Theme.NoTitleBar"。
  2. 在每個子 Activity 佈局頂部放置自定義 Toolbar 或 TextView 作為標題欄。
  3. 跳轉時在目標 Activity onCreate 中直接 titleTextView.setText("新標題")。

代碼示例

// 子 Activity 基類
public class BaseTabActivity extends Activity {
    protected TextView tvTitle;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 假設佈局包含 id 為 tv_title 的 TextView
        tvTitle = findViewById(R.id.tv_title);
    }
    protected void setCustomTitle(String title) {
        if (tvTitle != null) tvTitle.setText(title);
    }
}

// 具體子 Activity
public class ChildActivity extends BaseTabActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.child_layout);
        setCustomTitle(getIntent().getStringExtra("title")); // 動態設置
    }
}

為何不推薦修改 TabHost 標籤文字

  • TabHost 的標籤由 TabSpec.setIndicator() 靜態設置,動態修改需遍歷 TabWidget 子視圖,繁瑣且易出錯。
  • ActivityGroup 已被**廢棄**(API 13+),現代開發請使用 **Fragment + ViewPager** 替代。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved