SupportActionBar: Как изменить заголовок? - PullRequest
0 голосов
/ 06 ноября 2019

Этот макет взят из шаблона Studio 3.5.1. Я не могу понять это. Но мой вопрос, надеюсь, имеет простой ответ.

Вот макет XML:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ChecklistActivity">

        <androidx.viewpager.widget.ViewPager
            android:id="@+id/view_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        <com.google.android.material.appbar.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/tabAppBarLayout"
            android:theme="@style/AppTheme.AppBarOverlay">

            <com.google.android.material.tabs.TabLayout
                android:id="@+id/tabLayoutView"
                app:tabMode="scrollable"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?attr/colorPrimary" />

        </com.google.android.material.appbar.AppBarLayout>

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

В приложении Activity (Java) я хотел бы изменить текст android:label="@string/app_name (указанв манифесте деятельности), как он появляется в заголовке активности (appBar, toolBar, что бы это ни было). Я пока не смог этого сделать.

Screenshot of AppBar with tilte

1 Ответ

2 голосов
/ 06 ноября 2019

Нет, вы не можете добавлять, удалять или изменять что-либо в манифесте, как следует из названия, это файл манифеста, который система читает при установке приложения.

Если вы просто пытаетесь изменить заголовокВы можете использовать:

Если вы используете ActionBar:

getActionBar().setTitle(int titleId)

Если вы расширяете AppCompatActivity:

getSupportActionBar().setTitle(int titleId)

Например:

public class ChecklistActivity extends AppCompatActivity {

    @Override 
    public void onCreate(...) {
        doMyTimerThing();
    }

    public void doMyTimerThing() {
       onTick(long timeLeft) {
           ...(long to string here)...
           getSupportActionBar().setTitle(timeToShowOnActionBar)
       }
    }
}

Настройка панели приложений Android Dev Guide .

ActionBar против SupportActionBar

Документы ActionBar

Это простая реализация. Если вы хотите больше контролировать свой ActionBar по мере продвижения приложения, вы можете использовать Панель инструментов ,Панель инструментов должна быть добавлена ​​в ваш XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...