1. ホーム
  2. android

[解決済み] フラグメントからツールバーを取得する方法

2022-05-16 06:05:42

質問

私は ActionBarActivityNavigationDrawer で、support_v7を使用します。 Toolbar を ActionBar として使用します。私のフラグメントの1つでは、ツールバーがカスタムビューを持っています。他のフラグメントでは Toolbar はタイトルを表示する必要があります。

どのように Toolbar のインスタンスを取得する方法は?ActionBarを取得するには getActivity().getActionBar() を呼び出すと setTitle() を呼び出すと、何もしません。

UPDです。

私の場合

((ActionBarActivity) getActivity()).getSupportActionBar().setTitle();

(MrEngineer13の言うように)最初のフラグメント作成では、onHiddenChanged()から呼び出したので動作しませんでした。今はonCreateView()に追加してうまく動作しています。

どのように解決するのですか?

アクティビティを getActivity() から AppCompatActivity を最初に指定します。以下はその例です。

((AppCompatActivity) getActivity()).getSupportActionBar().setTitle();

キャストしなければならない理由は getActivity() を返すからです。 FragmentActivity を返すので AppCompatActivity

Kotlinでは

(activity as AppCompatActivity).supportActionBar?.title = "My Title"