1

我在 FragmentActivity 的抽屉布局中使用 Appcompat 工具栏。每个fragmentActivity里面都需要根据activity改变title。有没有办法从 Manifest 设置标题,而不是在每个活动中设置 onCreate toolbar.setTitle("ABC")。

注意:我没有使用 getSupportActionBar(toolbar)

FirstActivity 扩展 BaseActivity

主题.xml

<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primaryDarker</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>

<color name="primary">#457C50</color>
<color name="primaryDarker">#580C0C</color>

安卓清单

<activity
    android:name="com.sample.md.FirstActivity"
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:label="First Activity" >            
</activity>

在 Base Activity 中初始化工具栏

android.support.v7.widget.Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
android.support.v7.app.ActionBarDrawerToggle mDrawerToggle = 
    new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {

        @Override
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            try {
                toolbar.setTitle(mTitle);
            } catch (Exception e) {
                e.printStackTrace();
            }
            invalidateOptionsMenu();
            syncState();
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            toolbar.setTitle("Menu");
            invalidateOptionsMenu();
            syncState();
        }

};

mDrawerToggle.setDrawerIndicatorEnabled(true);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
4

3 回答 3

2

像这样设置标签属性:

<activity
        android:label="My Screen"
        ... >
于 2014-11-12T04:46:48.480 回答
1

您应该能够设置label属性。

于 2014-11-12T04:43:33.740 回答
0

setTitle()在您的活动/片段中使用。

于 2018-12-19T17:51:55.030 回答