TabHost 內嵌 ActivityGroup,子 Activity 之間跳轉需動態改變標題欄文字。
android:theme="@android:style/Theme.NoTitleBar"。Toolbar 或 TextView 作為標題欄。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")); // 動態設置
}
}
TabSpec.setIndicator() 靜態設置,動態修改需遍歷 TabWidget 子視圖,繁瑣且易出錯。