我正在寫一個涉及多個活動的應用程序:它們中的每一個都由更多的片段組成。在幾乎每個片段中,我想要設置不同的工具欄 ...我應該在哪裏做?我曾經做過onCreate()
或onCreateView()
中的幾乎所有內容,但現在我問自己:也許把它放在onStart()
中更正確? 我知道活動和片段生命週期如何工作......但我沒有找到我的具體情況的答案。 這是我在一個片段中使用的代碼:在哪裏設置工具欄的片段? onCreate()或onStart()?
// Toolbar setup
setHasOptionsMenu(true);
AppCompatActivity activity = (AppCompatActivity) getActivity();
ActionBar actionBar = activity.getSupportActionBar();
if (actionBar != null)
actionBar.setDisplayHomeAsUpEnabled(true);
Toolbar tb = (Toolbar) activity.findViewById(R.id.toolbar_main);
tb.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager mng = getFragmentManager();
mng.popBackStack();
}
});
if (activity.getSupportActionBar() != null)
activity.getSupportActionBar().setTitle(R.string.toolbar_title);
tb.setVisibility(View.VISIBLE);
這裏是activity_main.xml
文件的一部分,其中R.id.toolbar_main
定義:
<!--- [...] --->
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_main"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<!--- [...] --->
感謝您的回答。即使每個片段的特定更改最好放在相對片段的onCreate()中?在鏈接的示例項目中,我發現只有在活動中才發現片段中的工具欄未發生更改。 – Robb1
那麼,工具欄只是佈局中的另一個視圖,應該是用另一個視圖定製的alog。 –