안드로이드 앱에서 Toolbar.setTitle 메소드는 효과가 없습니다 – 어플리케이션 이름은 제목으로 표시됩니다

android-support-v7 : 21 라이브러리를 사용하여 간단한 응용 프로그램을 만들려고합니다.

코드 스 니펫 :

MainActivity.java

public class MainActivity extends ActionBarActivity {

    Toolbar mActionBarToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
        mActionBarToolbar.setTitle("My title");
        setSupportActionBar(mActionBarToolbar);
}

activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_actionbar"
        android:background="@null"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:fitsSystemWindows="true" />

</LinearLayout>

그러나 툴바의 “제목”대신 % application name %이 (가) 표시됩니다. 방법이 효과가없는
것 같습니다 setTitle.
“제목”을 표시하고 싶습니다.

UPD :
전에는 styles.xml:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="windowActionBar">false</item>
</style>

따라서 작업 표시 줄이 사용되지 않는다고 생각했습니다. NoActionBar스타일 부모에 추가 합니다.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
</style>

그러나 문제는 해결되지 않았습니다.



답변

해결책을 찾았습니다.

대신에:

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);

나는 사용했다 :

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My title");

그리고 작동합니다.


답변

SupportActionBar를 설정 한 후 언젠가 툴바를 통해 타이틀을 설정해야하는 사람은 이 내용을 읽으십시오.

지원 라이브러리의 내부 구현은 SupportActionBar가 설정되는 순간 툴바에 제목 (널이 아님)이 있는지 확인합니다. 있다면이 제목이 창 제목 대신 사용됩니다. 그런 다음 실제 제목을로드하는 동안 더미 제목을 설정할 수 있습니다.

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("");
setSupportActionBar(mActionBarToolbar);

나중…

mActionBarToolbar.setTitle(title);

답변

위의 답변은 완전히 사실이지만 저에게는 효과가 없습니다.

나는 다음과 같은 문제를 해결했다.

실제로 내 XML은 다음과 같습니다.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/confirm_order_mail_layout"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/confirm_order_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/confirm_order_list_collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|enterAlways">

            <android.support.v7.widget.Toolbar
                android:id="@+id/confirm_order_toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

나는 모든 옵션을 시도했으며 결국 CollapsingToolbarLayout그 특정 부분에서 사용할 필요가 없기 때문에 방금 제거했습니다. XML그래서 최종 XML 은 다음과 같습니다.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/confirm_order_mail_layout"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/confirm_order_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/confirm_order_toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

이제 setTitle()위의 답변과 같이 사용해야합니다 .

mActionBarToolbar = (Toolbar) findViewById(R.id.confirm_order_toolbar_layout);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My Title");

당신이 사용하려는 경우 지금 CollapsingToolbarLayoutToolbar다음 함께 당신은 사용해야 setTitle()CollapsingToolbarLayout

CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.confirm_order_mail_layout);
collapsingToolbarLayout.setTitle("My Title");

도움이 될 수 있습니다. 감사합니다.


답변

간단히 당신은 사용하여 모든 acitivity 이름을 변경할 수 있습니다

Acitivityname.this.setTitle("Title NAme");

답변

이것을 시도하십시오, 당신은 XML로 직접 제목을 정의 할 수 있습니다 :

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:title="some title"
        app:popupTheme="@style/AppTheme.PopupOverlay">

답변

각 Navbar 조각 제목의 제목을 설정하려면

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    myView = inflater.inflate(R.layout.second_layout, container, false);
    getActivity().setTitle("title");

    return myView;
}

답변

이것을 시도하십시오 ..이 방법은 나를 위해 작동합니다 .. !! 그것이 누군가를 도울 수 있기를 바랍니다 .. !!

<android.support.v7.widget.Toolbar
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:id="@+id/my_awesome_toolbar"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="?attr/colorPrimary"
 android:minHeight="?attr/actionBarSize"
 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >

<TextView
   android:id="@+id/toolbar_title"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:gravity="center"
   android:singleLine="true"
   android:text="Toolbar Title"
   android:textColor="@android:color/white"
   android:textSize="18sp"
   android:textStyle="bold" />

</android.support.v7.widget.Toolbar>  

툴바에 로고를 표시하려면 아래 스 니펫을 사용해보십시오. // 드로어 블 설정

toolbar.setLogo(ContextCompat.getDrawable(context, R.drawable.logo));

결과를 알려주세요.