Trong ứng dụng android Phương thức Thanh công cụ.setTitle không có hiệu lực - tên ứng dụng được hiển thị dưới dạng tiêu đề


298

Tôi đang cố gắng tạo ứng dụng đơn giản bằng thư viện android-support-v7: 21.

Đoạn mã:
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>

Nhưng thay vì "Tiêu đề của tôi" trên Thanh công cụ% tên ứng dụng% được hiển thị.
Có vẻ như setTitlephương pháp không có hiệu lực.
Tôi muốn hiển thị "Tiêu đề của tôi".

CẬP NHẬT: Trước đây, styles.xmllà:

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

Vì vậy, tôi nghĩ rằng thanh hành động không được sử dụng. Tôi thêm NoActionBarvào kiểu cha mẹ:

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

Nhưng vấn đề không được giải quyết.


4
FWIW, tôi đang ở cấp độ api 22 và tôi cũng gặp vấn đề tương tự nếu gọi setTitle sau khi gọi setSupportActionBar, nhưng nó đã hoạt động nếu gọi setTitle trước đó . Như được mô tả trong câu trả lời bên dưới, sau khi gọi setSupportActionBar, thanh hành động sẽ sở hữu thanh công cụ và các cuộc gọi trực tiếp trên thanh công cụ có thể không hoạt động. Tôi nhận ra rằng trong câu hỏi của bạn, bạn đã làm trong thực tế cuộc gọi setTitle trước setSupportActionBar, vì vậy có lẽ đây là cái gì đó đã thay đổi gần đây. Trong mọi trường hợp, sử dụng getSupportActionBar (). SetTitle cũng hoạt động tốt.
JHH

Truy vấn tương tự được hỏi trong stackoverflow.com/questions/15560904/
Khăn

Dùng thử - Cách đặt tiêu đề cho Hoạt động với ToolBar? link.medium.com/cGVg3zVr0Z
Werder

Câu trả lời:


558

Tìm thấy giải pháp:

Thay vì:

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

Tôi đã sử dụng:

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

Và nó hoạt động.


27
một cái tốt, nhưng không có nghĩa gì để làm việc theo cách này và không phải cái khác .... chào mừng bạn đến với Android 101
DoruChidean

28
getSupportActionBar().setTitle("My title");có thể tạo ra 'java.lang.NullPulumException'
Pratik Butani

8
@PratikButani Miễn là Thanh công cụ đã được đặt là setSupportActionBar () trước khi gọi getSupportActionBar () tại sao có thể?
Leon

3
Aha, dễ dàng giải quyết: khẳng định getSupportActionBar ()! = Null;
Leon

10
Các bạn đã thực sự ủng hộ bình luận @PratikButani rất nhiều lần? Nếu bạn sử dụng chủ đề kiểu mà không có thanh hành động nhưng thanh công cụ hỗ trợ tùy chỉnh v7 và bạn quên gọi thì setSupportActionBar(mToolbar)tất nhiên bạn sẽ bị loại trừ null, nhưng nếu bạn gọi nó thì hãy bỏ qua thông báo này. Chỉ cần đọc - developer.android.com/training/appbar/setting-up.html
user25

115

Đối với bất kỳ ai cần thiết lập tiêu đề thông qua Thanh công cụ một thời gian sau khi đặt SupportActionBar, hãy đọc phần này.

Việc triển khai bên trong thư viện hỗ trợ chỉ kiểm tra xem Thanh công cụ có tiêu đề (không phải null) tại thời điểm SupportActionBar được thiết lập hay không. Nếu có, thì tiêu đề này sẽ được sử dụng thay cho tiêu đề cửa sổ. Sau đó, bạn có thể đặt tiêu đề giả trong khi bạn tải tiêu đề thực.

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

một lát sau...

mActionBarToolbar.setTitle(title);

Nó hoạt động, nhưng tại sao đây là cách nó phải được thực hiện không có ý nghĩa với tôi. Có ai có một lời giải thích cho lý do tại sao điều này làm việc?
Maxwell

1
@Maxwell Có ý nghĩa khi xem xét thiết kế của tương tác thanh công cụ / thanh công cụ. Activity sẽ hiển thị một tiêu đề, nếu bạn cung cấp một thanh công cụ không có tiêu đề đó, android cho rằng bạn muốn điều khiển tiêu đề Activity truyền thống.
vẽ

1
mActionBarToolbar.setTitle (getResource (). getString (R.opes.app_name)); sẽ đảm bảo có một tiêu đề mặc định tốt trong khi vẫn giữ nguyên hiệu ứng kỳ diệu của câu trả lời
Eslam Sameh Ahmed

@Bevor nó hoạt động, chỉ cần xem câu trả lời này có bao nhiêu phiếu ... bạn vừa làm sai điều gì đó
user25

@ user25, nó cũng làm việc không tốt cho tôi, nó đã xóa một mũi tên quay lại. Sau đó, tôi tìm thấy một giải pháp khác: stackoverflow.com/a/40571324/2914140 . this.setTitle("Title"), trong đó this- là một tham chiếu đến một hoạt động.
CoolMind

80

Câu trả lời trên là hoàn toàn đúng nhưng không hiệu quả với tôi.

Tôi đã giải quyết vấn đề của mình với những điều sau đây.

Thật ra XML của tôi là như thế:

<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>

Tôi đã thử tất cả các tùy chọn và sau tất cả, tôi đã loại bỏ CollapsingToolbarLayoutvì tôi không cần phải sử dụng cụ thể đó. XMLVì vậy, XML cuối cùng của tôi giống như:

<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>

Bây giờ bạn phải sử dụng setTitle()như câu trả lời ở trên:

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

Bây giờ nếu bạn muốn sử dụng CollapsingToolbarLayoutToolbarcùng nhau sau đó bạn phải sử dụng setTitle()cácCollapsingToolbarLayout

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

Có thể nó sẽ giúp bạn. Cảm ơn bạn.


1
Điều đó có ý nghĩa, loại bỏ CollapsingToolbarLayoutvấn đề đã được giải quyết
bluware

2
Đối với tôi, mẹo đặt tiêu đề cho CollapsingToolbarLayout hoạt động. Cảm ơn rất nhiều!
mysliwiec_tech

Tôi có thể thay đổi phụ đề với CollapsingToolbarLayout?
nrofis

2
Vì thanh công cụ của bạn được lồng trong CollapsingToolbarLayout, nên nó bị ghi đè bằng cách thu gọn bố cục thanh công cụ. Điều này làm việc cho tôi.
neilQ5

2
Bro bạn cứu mạng tôi !!! Bạn phải cả setSupportActionbar trước khi sử dụng sụp đổToolbarLayout.seTitle ("Tiêu đề");
Jacky Chong

35

Đơn giản là bạn có thể thay đổi bất kỳ tên nhạy cảm nào bằng cách sử dụng

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

1
Hoặc đơn giản là title = "Title"trong Kotlin hoặc có thể this.setTitle("Title")trong Java.
CoolMind

33

Hãy thử điều này, bạn có thể định nghĩa tiêu đề trực tiếp trong 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">

Đơn giản nhất nhưng tôi vẫn cần tùy chỉnh các tiêu đề một cách linh hoạt, nếu bạn có bất kỳ ý tưởng nào
aya salama

15

Để đặt tiêu đề cho mỗi tiêu đề đoạn Navbar

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

    return myView;
}

12

Hãy thử điều này .. phương pháp này hiệu quả với tôi .. !! hy vọng nó có thể giúp được ai đó .. !!

<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>  

Để hiển thị logo trên thanh công cụ, hãy thử đoạn trích dưới đây. // Đặt drawable

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

Hãy cho tôi biết kết quả.


Cảm ơn bạn Ragu Swaminathan .. Tôi đã cố gắng triển khai SupportActionBar từ hoạt động appcompact để đặt tiêu đề cho hoạt động của mình nhưng không thể thực hiện được vì tôi cần phải mở rộng BaseGameActivity. Sau đó, tôi đi cho thanh công cụ nhưng tiêu đề không được hiển thị trong khi chạy. Phương pháp của bạn bằng cách sử dụng hộp văn bản bên trong thanh công cụ đang hoạt động. Đề xuất nó cho những người có cùng hoàn cảnh
Sarun1001

thanh công cụ có một phương pháp để đặt logo ứng dụng. kiểm tra câu trả lời cập nhật của tôi
Ragu Swaminathan

11
 getSupportActionBar().setTitle("Your Title");

2
Câu trả lời này còn sơ khai và nên là một nhận xét , vì những câu trả lời ngắn như thế này có thể được coi là chất lượng thấp. Một khi bạn có đủ danh tiếng, bạn sẽ có thể bình luận. Nếu bạn không có đủ danh tiếng, hãy đọc bài đăng này về cách đóng góp nếu bạn chưa có đủ danh tiếng.
đăng ký

@ascripter đó là một câu trả lời
Jemshit Iskenderov

8

Vui lòng xem https://code.google.com.vn/p/android/issues/detail?id=77763 . Rõ ràng nó được cho là làm việc như vậy. Khi bạn gọi cuộc gọi setSupportActionBar()phương thức, đó là trách nhiệm của đại biểu ActionBar để định tuyến cuộc gọi đến chế độ xem chính xác.


1
Actionbar ủy nhiệm cái gì? Ở đây setTitle () không hoạt động cho thanh công cụ cũng không phải cho thanh hành động hỗ trợ. Thanh hành động gốc bị vô hiệu hóa trong chủ đề. Cái quái gì là sai? Nếu chỉ có phần đính kèm mã nguồn hoạt động trong Android Studio, tôi có thể tự mình theo dõi vấn đề!
WindRider 17/2/2015

6

Tôi đã cố đổi tên thanh công cụ từ đoạn

Nó giúp tôi, tôi hy vọng sẽ giúp được người khác

Activity activity = this.getActivity();
Toolbar toolbar = (Toolbar) activity.findViewById(R.id.detail_toolbar);
        if (toolbar != null) {
            activity.setTitle("Title");
        }

//toolbar.setTitle("Title"); did not give the same results

Ảnh chụp màn hình: nhập mô tả hình ảnh ở đây


6

Nó không chỉ là về .setTitle

nhiều phương thức khác của Thanh công cụ hỗ trợ (Appcompat v7) onCreatechỉ hoạt động với

getSupportActionBar().method()

và không làm việc với mToolbar.method()

ví dụ:

getSupportActionBar().setTitle("toolbar title");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

mặc dù các phương pháp tiếp theo hoạt động tốt mà không cần getSupportActionBar()trongonCreate

mToolbar.setVisibility(View.VISIBLE);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //
    }

Vấn đề chỉ onCreatexảy ra với sự kiện, bạn vẫn có thể sử dụng mToolbar.setTitle()sau thay vì gây phiền nhiễu getSupportActionBar().setTitle(), ví dụ nếu bạn thêm cái này vào onCreatethì nó sẽ hoạt động (vì nó sẽ được thực hiện sau, sau onCreate)

mHandler.post(new Runnable() {
    @Override
    public void run() {
        mToolbar.setTitle("toolbar title");
    }
});

Tôi thích sử dụng giải pháp này https://stackoverflow.com/a/35430590/4548520 hơn https://stackoverflow.com/a/26506858/4548520 vì nếu bạn thay đổi tiêu đề nhiều lần (trong các chức năng khác nhau) sẽ dễ sử dụng hơn mToolbar.setTitle()dài hơn getSupportActionBar().setTitle()một và bạn không thấy thông báo gây phiền nhiễu về ngoại lệ null như vớigetSupportActionBar().setTitle()


nếu bạn muốn thay đổi tiêu đề nhiều lần và sử dụng thanh công cụ thu gọn, điều này sẽ giúp: stackoverflow.com/questions/26486730/iêu
user1506104

6

Đối với bất kỳ ai cần thiết lập tiêu đề thông qua Thanh công cụ một thời gian sau khi đặt SupportActionBar (@sorianiv) bạn Toolbarđang ở trong a CollapsingToolbarLayout, hãy đọc điều này:

mToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
Toolbar toolbar = findViewById(R.id.toolbar);
//toolbar.setTitle(""); // no need to do this
//mToolbarLayout.setTitle("Title"); // if you need an initial title, do this instead
setSupportActionBar(toolbar);

Sau đó,

mToolbarLayout.setTitle("New Title");

5

Tiêu đề ứng dụng sẽ không hiển thị làm tiêu đề mặc định cho mọi hoạt động, bạn có thể chèn tiêu đề khác nhau cho mọi hoạt động. Trên tệp hoạt động của bạn dưới đây, onCreate chỉ cần dán một dòng duy nhất để đặt tiêu đề,

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("Your Title Here");

Chỉ cần thay đổi văn bản "Tiêu đề của bạn ở đây" thành văn bản của bạn.


4

Chỉ cần sử dụng điều này trong bộ điều hợp của bạn, trong đó MainActivity là AppCompactActivity của bạn. Gọi nó từ bất cứ đâu.

((MainActivity) context).getSupportActionBar().setTitle(titles.get(position));

4

Tôi đã làm cho nó hoạt động bằng cách sử dụng -

toolbar.post(new Runnable() {
            @Override
            public void run() {
                toolbar.setTitle("My Title");
            }
        });

1
Bạn không cần sử dụng postnếu bạn thay đổi tiêu đề trong luồng UI, mà tôi nghĩ là 90% trường hợp.
Vadim Kotov

3

Nếu bạn đang sử dụng CollapsibleToolbarLayoutcùng với Toolbarthì bạn sẽ cần đặt tiêu đề trong cả hai bố cục

đặt Thanh công cụ của bạn làm thanh hành động trong onCreatephương thức

protected void setUpToolBar() {

    if (mToolbar != null) {
        ((HomeActivity) getActivity()).setSupportActionBar(mToolbar);
        mToolbar.setTitleTextColor(Color.WHITE);
        mToolbar.setTitle("List Detail");
        mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getActivity()
                        .getSupportFragmentManager().popBackStack();
            }
        });
        ((HomeActivity) getActivity()).getSupportActionBar()
                .setDisplayHomeAsUpEnabled(true);
    }
}

Sau này chỉ cần cập nhật tiêu đề của thanh công cụ bằng setTitlephương thức

 mToolbar .setTitle(productFromShoppingList.getProductName()); 
 mCollapsingToolbar.setTitle(productFromShoppingList.getProductName());

Giải pháp này hoạt động nếu bạn thấy rằng bạn có thể đặt tiêu đề một lần, nhưng không thể thay đổi tiêu đề sau đó. Đảm bảo bạn đang đặt tiêu đề của Thanh công cụ thu gọn.
Hylianpuffball

nếu bạn muốn thay đổi tiêu đề sau một thời gian với thanh công cụ thu gọn, bạn có thể thực hiện việc này: stackoverflow.com/questions/26486730/ chủ
user1506104

2

Thử cái này:

Mã Xml

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:id="@+id/tool_bar"
    android:background="@color/tablayout"
    android:theme="@style/ToolBarStyle"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title"
        android:textSize="18sp"
        android:textColor="@color/white"/>
    </android.support.v7.widget.Toolbar>

Mã Java

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    toolbar_text = (TextView)findViewById(R.id.toolbar_title);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    toolbar.setLogo(R.drawable.ic_toolbar);
}

2

Nếu mục tiêu của bạn là đặt một chuỗi tĩnh trên thanh công cụ, cách dễ nhất để thực hiện là chỉ cần đặt nhãn hoạt động trong AndroidManifest.xml:

<activity android:name=".xxxxActivity"
          android:label="@string/string_id" />

Thanh công cụ sẽ nhận được chuỗi này mà không cần bất kỳ mã. (hoạt động với tôi với các thư viện v27.)


2

Tôi có một hành vi kỳ lạ có thể giúp bạn.
Điều này đang hoạt động nhưng nó không có tác dụng chỉ trong onCreate:

toolbar.setTitle("title");

Hãy thử sử dụng điều này trong onCreate:

yourActivityName.this.setTitle("title")

2

Để thay đổi tiêu đề cho từng hoạt động khác nhau

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pizza);
    setTitle(getResources().getText(R.string.title));
}

setTitle (R.opes.title); Sự kiện dễ dàng hơn, nhưng không hoạt động
toshkinl

2
 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       //custom toolbaar
       getSupportActionBar().setTitle("Abhijeet");

    }
}

1

Mặc dù không liên quan ngay đến thiết lập cụ thể này, tôi thấy rằng việc xóa "CollapsingToolbarLayout" khỏi XML của tôi đang gói thanh công cụ của tôi bên trong AppBarLayout khiến mọi thứ hoạt động.

Vì vậy, đây:

      <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_height="?attr/actionBarSize"
                app:layout_scrollFlags="scroll|enterAlways"
                app:navigationIcon="@drawable/ic_arrow_back_white_24dp" />

        </android.support.design.widget.AppBarLayout>

Thay vì điều này:

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.CollapsingToolbarLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/collapsingToolbar"
                android:minHeight="?attr/actionBarSize"
                app:layout_scrollFlags="enterAlways|scroll|snap">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_height="?attr/actionBarSize"
                    app:navigationIcon="@drawable/ic_arrow_back_white_24dp" />
            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

Sau đó, tôi đặt tiêu đề trong onCreate của hoạt động, trước khi setSupportActionBar () được gọi.


bạn có thể làm điều đó nếu bạn thực sự cần bố cục thanh công cụ thu gọn, hãy kiểm tra điều này: stackoverflow.com/questions/26486730/iêu
user1506104

@Chantell Osejo điều này cũng làm việc cho tôi, thậm chí tôi đã sử dụng cùng một bố cục. Cảm ơn
Paramjit Singh Rana

1

Điều này có thể được thực hiện bằng cách đặt android:labelthuộc tính của hoạt động của bạn trong AndroidManifest.xmltệp:

<activity android:name="my activity"
 android:label="The Title I'd like to display" />

Và sau đó thêm dòng này vào onCreate ():

getSupportActionBar().setDisplayShowTitleEnabled(true);

0

Hãy chắc chắn rằng bạn thêm tùy chọn này:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);

0

Câu trả lời là trong tài liệu (mà bạn có thể tìm thấy ở đây ):

Để sử dụng các phương thức tiện ích ActionBar, hãy gọi phương thức getSupportActionBar () của hoạt động. Phương thức này trả về một tham chiếu đến một đối tượng ActionBar của appcompat. Khi bạn có tham chiếu đó, bạn có thể gọi bất kỳ phương thức ActionBar nào để điều chỉnh thanh ứng dụng. Ví dụ: để ẩn thanh ứng dụng, hãy gọi ActionBar. Suede ().

Đó là giải pháp bạn thực sự tìm thấy. Chỉ cần nghĩ đến việc đưa ra một tài liệu tham khảo cho các tài liệu chính thức (mà dường như ít có xu hướng đọc).


0

Trong Kotlin bạn có thể làm điều này:

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar

class SettingsActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_settings)

        val toolbar = findViewById<Toolbar>(R.id.toolbar)
        setSupportActionBar(toolbar)
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        supportActionBar?.setTitle(R.string.title)

    }

    override fun onSupportNavigateUp() = true.also { onBackPressed() }

}

-2

Điều này xảy ra bởi vì bạn đang sử dụng cả Thanh công cụ và ActionBar. Bây giờ khi bạn muốn sử dụng Thanh công cụ làm thanh hành động, điều đầu tiên bạn cần làm là vô hiệu hóa thanh hành động được cung cấp trang trí.

Cách dễ nhất là mở rộng chủ đề của bạn Theme.AppCompat.NoActionBar.


Xin lỗi tôi hiểu nhầm câu hỏi.
Haresh Chhelana

1
@HareshChhelana Bạn đã đăng câu trả lời nhưng bạn có biết chính xác vấn đề là gì không?
Paresh Mayani

Tôi nghĩ đó là vấn đề liên quan đến thanh hành động mà bạn đã đưa ra những ans như vậy và khi bạn nhận ra điều này, tôi đã xóa ans của mình để bây giờ bạn không lo lắng về người anh em hiểu lầm của mình.
Haresh Chhelana

1
@PareshMayani cảm ơn bạn đã trả lời, nhưng nó không giải quyết được vấn đề của tôi. Vui lòng kiểm tra câu hỏi cập nhật
krossovochkin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.