অ্যান্ড্রয়েড অ্যাপে সরঞ্জামদণ্ড.সেটিটেল পদ্ধতিটির কোনও প্রভাব নেই - অ্যাপ্লিকেশন নামটি শিরোনাম হিসাবে দেখানো হয়েছে


298

আমি অ্যান্ড্রয়েড-সাপোর্ট-ভি 7: 21 লাইব্রেরি ব্যবহার করে সহজ অ্যাপ্লিকেশন তৈরি করার চেষ্টা করছি।

কোড স্নিপেটস:
মেইনএ্যাকটিভিটি.জভা

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>

তবে টুলবার% অ্যাপ্লিকেশন নাম% তে "আমার শিরোনাম" এর পরিবর্তে প্রদর্শিত হয়।
মনে হচ্ছে setTitleপদ্ধতির কোনও প্রভাব নেই।
আমি "আমার শিরোনাম" প্রদর্শন করতে চাই।

ইউপিডি: আগে, 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>

তবে সমস্যার সমাধান হয় না।


4
এফডব্লিউআইডাব্লু, আমি এপিআই স্তরের ২২ এ আছি এবং সেটসিটলকে সেটসপোর্ট অ্যাকশনবার কল করার পরে যদি কল করা হয় তবে আমার একই সমস্যা ছিল , তবে সেটটিটল আগে কল করলে এটি কাজ করেছিল । নীচে একটি উত্তরে বর্ণিত হিসাবে সেটসপোর্টঅ্যাকশনবারকে কল করার পরে, অ্যাকশন বারটি সরঞ্জামদণ্ডের মালিকানা গ্রহণ করে এবং সরাসরি সরঞ্জামদণ্ডে কল করা কাজ নাও করতে পারে। আমি বুঝতে পারছি না যে আপনার প্রশ্নে আপনাকে করেনি setSupportActionBar সামনে আসলে কল setTitle, তাই সম্ভবত এই কিছু যে সম্প্রতি পরিবর্তিত হয়েছে। যাইহোক, getSupportActionBar () ব্যবহার করে সেটটাইটেল ঠিক তেমন কাজ করে।
জেএইচ এইচ

একই ক্যোয়ারীতে জিজ্ঞাসা stackoverflow.com/questions/15560904/...
JoboFive

এটি ব্যবহার করে দেখুন - "টুলবার দিয়ে ক্রিয়াকলাপের জন্য কীভাবে একটি শিরোনাম সেট করবেন?" link.medium.com/cGVg3zVr0Z
ওয়ার্ডার

উত্তর:


558

সমাধানটি খুঁজে পেয়েছি:

পরিবর্তে:

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");

এবং এটি কাজ করে।


27
একটি দুর্দান্ত, তবে অন্যভাবে নয় এইভাবে কাজ করার কোনও ধারণা নেই .... অ্যান্ড্রয়েড 101 এ আপনাকে স্বাগতম
ডোরুচিদান

28
getSupportActionBar().setTitle("My title");উত্পাদিত হতে পারে 'java.lang. নালপয়েন্টার এক্সসেপশন'
প্রতীক বুটানি

8
@ প্রকটিক বুটানি এতক্ষণ যতক্ষণ পর্যন্ত টুলসটি সেটসপোর্টএকশনবার () হিসাবে সেটআপ করা হয়েছে getSupportActionBar () কল করার আগে কেন এটি হতে পারে?
লিওন

3
আহা, সহজেই সমাধান করা: getSupportActionBar ()! = নাল;
লিওন

10
বন্ধুরা আপনি কি সত্যিই @ প্রতিকিক বুটানির মন্তব্যে এতবার আপগ্রেড করেছেন? আপনি যদি অ্যাকশন বার ছাড়াই স্টাইল থিম ব্যবহার করেন তবে কাস্টম সাপোর্ট টুলবার ভি 7 এবং আপনি কল setSupportActionBar(mToolbar)করতে অবশ্যই ভুলে গেছেন তবে আপনি নালীর হাতছাড়া হয়ে যাবেন, তবে যদি আপনি এটি ডাকেন তবে কেবল এই বার্তাটিকে উপেক্ষা করুন। কেবলমাত্র পড়ুন - developer.android.com/training/appbar/setting-up.html
ব্যবহারকারী 25

115

যার জন্য সরঞ্জামদণ্ডের মাধ্যমে শিরোনাম সেট আপ করা দরকারসাপোর্টএ্যাকশনবারটি সেট করার পরে যাকে কিছুক্ষণের জন্য এটি পড়ুন।

সমর্থন লাইব্রেরির অভ্যন্তরীণ বাস্তবায়নটি সাফল্যঅ্যাকশনবারটি সেট আপ করার মুহুর্তে সরঞ্জামদণ্ডের কোনও শিরোনাম রয়েছে (নাল নয়) তা পরীক্ষা করে দেখুন। যদি থাকে তবে উইন্ডো শিরোনামের পরিবর্তে এই শিরোনামটি ব্যবহার করা হবে। আপনি আসল শিরোনামটি লোড করার পরে আপনি একটি ডামি শিরোনাম সেট করতে পারেন।

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

পরে ...

mActionBarToolbar.setTitle(title);

এটি কাজ করে, তবে কেন এটি করা উচিত তা আমার কাছে কোনও ধারণা রাখে না। এটি কেন কাজ করে তার জন্য কারও কি ব্যাখ্যা আছে?
ম্যাক্সওয়েল

1
@ ম্যাক্সওয়েল অ্যাকশনবারের / সরঞ্জামদণ্ডের মিথস্ক্রিয়াটির নকশা বিবেচনা করে তা বোঝায়। ক্রিয়াকলাপটির একটি শিরোনাম প্রদর্শিত হবে, যদি আপনি সেই শিরোনাম ছাড়াই একটি সরঞ্জামদণ্ড সরবরাহ করেন তবে অ্যান্ড্রয়েড ধরে নেয় যে আপনি প্রচলিত ক্রিয়াকলাপ শিরোনাম নিয়ন্ত্রণ চান।
ড্রু

1
mActionBarToolbar.setTitle (। getResources () GetString, (R.string.app_name)); উত্তরের একই
icalন্দ্রজালিক

@ বিভোর এটি কাজ করে, দেখুন এই উত্তরটির কতটি ভোট রয়েছে ... আপনি কেবল কিছু ভুল করেছেন
ব্যবহারকারী 25

@ ব্যবহারকারী 25, এটি আমার পক্ষেও খারাপ কাজ করেছে, এটি একটি পিছনের তীরটিকে সরিয়ে দিয়েছে। তারপরে আমি আরও একটি সমাধান পেয়েছি: stackoverflow.com/a/40571324/2914140this.setTitle("Title"), যেখানে this- কোনও ক্রিয়াকলাপের উল্লেখ।
কুলমাইন্ড

80

উপরের উত্তরটি সম্পূর্ণ সত্য তবে আমার পক্ষে কাজ করছে না।

আমি আমার সমস্যাগুলি নিম্নলিখিত বিষয়গুলি দিয়ে সমাধান করেছি।

আসলে আমার এক্সএমএল এর মত:

<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তাই আমার ফাইনাল এক্সএমএলটি এর মত:

<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");

এখন আপনি ব্যবহার করতে চান তাহলে CollapsingToolbarLayoutএবং Toolbarতারপর একসঙ্গে আপনি ব্যবহার করতে হবে setTitle()এরCollapsingToolbarLayout

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

এটা আপনাকে সাহায্য করবে। ধন্যবাদ.


1
এটি বোঝা যায়, CollapsingToolbarLayoutসমস্যার সমাধান করা সমস্যাটি দূর করে
ব্লুওয়্যার

2
আমার জন্য কলসিংটুলবারআলআউট কাজ করে শিরোনাম সেট করার কৌশল। অনেক ধন্যবাদ!
mysliwiec_tech

আমি কি দিয়ে সাবটাইটেলটি পরিবর্তন করতে পারি CollapsingToolbarLayout?
নিফিস

2
যেহেতু আপনার সরঞ্জামদণ্ডটি কলসিংটুলবারআলআউট এর নীচে নীস্টযুক্ত তাই এটি টুলবার বিন্যাসটি সঙ্কুচিত করে ওভাররাইড করা হয়। এটি আমার পক্ষে কাজ করে।
neilQ5

2
ভাই আপনি আমার জীবন বাঁচান !!! টুলবারলয়আউট.সিটিটল ("শিরোনাম") ব্যবহার করার আগে আপনাকে উভয়ই সাপোর্টপোর্ট অ্যাকশনবার সেট করতে হবে;
জ্যাকি চং

35

কেবলমাত্র আপনি ব্যবহার করে যে কোনও তীব্রতার নাম পরিবর্তন করতে পারেন

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

1
অথবা কেবল title = "Title"কোটলিনে বা this.setTitle("Title")জাভাতে।
কুলমাইন্ড

33

এটি চেষ্টা করে দেখুন, আপনি সরাসরি এক্সএমএলে শিরোনামটি সংজ্ঞায়িত করতে পারেন:

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

সবচেয়ে সহজ তবে তবুও আমার গতিশীল শিরোনামগুলি প্রয়োজন, যদি আপনার কোনও ধারণা থাকে
আয়া সালাম

15

প্রতিটি নববার খণ্ড শিরোনামের জন্য শিরোনাম সেট করতে

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

    return myView;
}

12

এই চেষ্টা করুন .. এই পদ্ধতিটি আমার জন্য কাজ করে .. !! আশা করি এটি কারও সাহায্য করবে .. !!

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

ফলাফল আমাকে জানাবেন।


আপনাকে ধন্যবাদ রাগু স্বামীনাথন .. আমি আমার ক্রিয়াকলাপের একটি শিরোনাম দেওয়ার জন্য অ্যাপকম্প্যাক্ট ক্রিয়াকলাপ থেকে সমর্থনঅ্যাকশনবার বাস্তবায়নের চেষ্টা করছিলাম কিন্তু বেসগেমঅ্যাক্টিভিটি প্রসারিত করার প্রয়োজনে এটি করতে পারিনি। তারপরে আমি টুলবারের জন্য যাই তবে শিরোনামটি চলমান অবস্থায় প্রদর্শিত হয় না। সরঞ্জামদণ্ডের অভ্যন্তরে পাঠ্যবক্স ব্যবহার করে আপনার পদ্ধতি কাজ করছে। লোকেদের একই পরিস্থিতিতে এটির প্রস্তাব দিন
সরুন 1001

অ্যাপ লোগো সেট করার জন্য সরঞ্জামদণ্ডে একটি পদ্ধতি রয়েছে। আমার আপডেট হওয়া উত্তরটি দেখুন
রাগু স্বামীনাথন

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

2
এই উত্তরটি একটি স্টাব এবং পরিবর্তে একটি মন্তব্য হওয়া উচিত , কারণ এর মতো সংক্ষিপ্ত উত্তরগুলি নিম্ন মানের হিসাবে বিবেচিত হতে পারে। আপনার যথেষ্ট খ্যাতি পেলে আপনি মন্তব্য করতে সক্ষম হবেন। আপনার যদি যথেষ্ট খ্যাতি না থাকে তবে আপনার পর্যাপ্ত খ্যাতি না থাকলে কীভাবে অবদান রাখতে হবে এই পোস্টটি পড়ুন ।
অ্যাসক্রিপ্টর

@ এসসিপিটার এটি উত্তর
জেমশিট ইস্কেন্দ্রভ

8

দয়া করে https://code.google.com/p/android/issues/detail?id=77763 দেখুন । স্পষ্টতই এটির মতো কাজ করার কথা। একবার আপনি যদি কলটি setSupportActionBar()কল করেন, তারপরে কলটি সঠিক দৃশ্যে পৌঁছানোর জন্য অ্যাকশনবারের প্রতিনিধিটির দায়িত্ব।


1
সেই অ্যাকশনবারের প্রতিনিধি কী? এখানে সেটটাইটেল () সরঞ্জামদণ্ডের জন্যও সমর্থন অ্যাকশনবারের জন্য কাজ করে না। নেটিভ অ্যাকশনবারটি থিমটিতে অক্ষম। কি হয়েছে ভুল? যদি কেবল উত্স কোড সংযুক্তি অ্যান্ড্রয়েড স্টুডিওতে কাজ করে তবে আমি নিজেই সমস্যাটি সনাক্ত করতে পারি!
উইন্ডারাইডার

6

আমি টুকরাটি থেকে টুলবারটির নামকরণের চেষ্টা করেছি

এটি আমাকে সহায়তা করেছে, আমি আশা করি অন্য কাউকে সাহায্য করব

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

স্ক্রীনশট: এখানে চিত্র বর্ণনা লিখুন


6

এটা ঠিক না .setTitle

সাপোর্ট টুলবারের আরও পদ্ধতি (অ্যাপকম্প্যাট ভি 7) onCreateকেবলমাত্র এতে কাজ করে

getSupportActionBar().method()

এবং সাথে কাজ করবেন না mToolbar.method()

উদাহরণ:

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

যদিও পরবর্তী পদ্ধতিগুলি ব্যতীত সূক্ষ্মভাবে কাজ getSupportActionBar()করেonCreate

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

কেবল onCreateইভেন্টে সমস্যা , আপনি এখনও mToolbar.setTitle()বিরক্ত করার পরিবর্তে পরে ব্যবহার করতে পারেন getSupportActionBar().setTitle(), উদাহরণস্বরূপ আপনি onCreateএটি এতে যুক্ত করলে কাজ করবে (কারণ এটি পরে কার্যকর করা হবে, পরে onCreate)

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

আমি এই সমাধান ব্যবহার করতে পছন্দ https://stackoverflow.com/a/35430590/4548520 চেয়ে https://stackoverflow.com/a/26506858/4548520 কারন যদি আপনি শিরোনাম অনেকবার পরিবর্তন (বিভিন্ন ফাংশন মধ্যে) এটা ব্যবহার করা বেশ আরামদায়ক mToolbar.setTitle()আর getSupportActionBar().setTitle()একটির চেয়ে বেশি এবং আপনি এর মতো নাল ব্যতিক্রম সম্পর্কে বিরক্তিকর বিজ্ঞপ্তি দেখতে পাবেন নাgetSupportActionBar().setTitle()


আপনি শিরোনাম অনেকবার পরিবর্তন করতে চান এবং একটি ধ্বসে টুলবার ব্যবহার করা হয় তবে, এই সহায়তা করবে: stackoverflow.com/questions/26486730/...
user1506104

6

এমন যে কেউ স্থাপনের SupportActionBar (@sorianiv) এর পর কিছু সময় টুলবার মাধ্যমে শিরোনাম সেট করতে প্রয়োজনের জন্য এবং আপনার Toolbarএকটি ভিতরে CollapsingToolbarLayout, এই পড়া:

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

তাহলে পরে,

mToolbarLayout.setTitle("New Title");

5

অ্যাপ্লিকেশন শিরোনাম প্রতিটি ক্রিয়াকলাপে ডিফল্ট শিরোনাম হিসাবে প্রদর্শিত হবে না, আপনি প্রতিটি ক্রিয়াকলাপে বিভিন্ন শিরোনাম সন্নিবেশ করতে পারেন। আপনার ক্রিয়াকলাপের ফাইলটিতে অ্যানক্রিয়েট শিরোনাম সেট করতে কেবল একটি লাইন পেস্ট করুন,

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

"আপনার শিরোনাম এখানে" পাঠ্যটি আপনার পাঠ্যে পরিবর্তন করুন।


ধন্যবাদ ভাই এটি সত্যিই আমার জন্য কাজ করেছে
বিবেক

4

এটি কেবল আপনার অ্যাডাপ্টারে ব্যবহার করুন, যেখানে মেইনএকটিভিটি আপনার অ্যাপকম্প্যাক্টঅ্যাক্টিভিটি। যে কোনও জায়গা থেকে কল করুন।

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

4

আমি এটি ব্যবহার করে কাজ করেছিলাম -

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

1
আপনি postযদি ইউআই থ্রেডে শিরোনাম পরিবর্তন করেন তবে আপনাকে ব্যবহার করার দরকার নেই যা আমার মনে হয় 90% কেস।
ভাদিম কোতোভ

3

আপনি যদি CollapsibleToolbarLayoutপাশাপাশি ব্যবহার করে থাকেন Toolbarতবে উভয় বিন্যাসে আপনাকে শিরোনাম নির্ধারণ করতে হবে

onCreateপদ্ধতিতে অ্যাকশন বার হিসাবে আপনার সরঞ্জামদণ্ডটি সেট করুন

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);
    }
}

পরে setTitleপদ্ধতিটি ব্যবহার করে কেবল সরঞ্জামদণ্ডের শিরোনাম আপডেট করুন

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

আপনি যদি একবার শিরোনাম সেট করতে পারেন তবে এটির পরে এটি পরিবর্তন করতে পারবেন না যদি এই সমাধানটি কাজ করে। নিশ্চিত হয়ে নিন যে আপনি ভেঙে যাওয়া সরঞ্জামদণ্ডের শিরোনামটি সেট করছেন।
হিলিয়ানপফবল

: আপনি টুলবার ধ্বসে সঙ্গে কিছু সময় পরে শিরোনাম পরিবর্তন করতে চান, আপনি এটা করতে পারেন stackoverflow.com/questions/26486730/...
user1506104

2

এটা চেষ্টা কর:

এক্সএমএল কোড

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

জাভা কোড

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

যদি আপনার লক্ষ্যটি সরঞ্জামদণ্ডে একটি স্ট্যাটিক স্ট্রিং সেট করা হয়, তবে এটির সবচেয়ে সহজ উপায়টি অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে কেবলমাত্র কার্যকলাপের লেবেল সেট করা:

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

টুলবারটি কোনও কোড ছাড়াই এই স্ট্রিংটি পাবে। (v27 লাইব্রেরি সহ আমার জন্য কাজ করে))


2

আমার একটি অদ্ভুত আচরণ রয়েছে যা আপনাকে সাহায্য করতে পারে।
এটি কাজ করছে তবে কেবলমাত্র অনক্রিটটিতে এর কোনও প্রভাব নেই:

toolbar.setTitle("title");

এটি অনক্রিটটিতে ব্যবহার করার চেষ্টা করুন:

yourActivityName.this.setTitle("title")

2

প্রতিটি পৃথক ক্রিয়াকলাপের শিরোনাম পরিবর্তন করতে

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

setTitle (R.string.title); ইভেন্ট সহজ, কিন্তু কাজ করে না
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

এই নির্দিষ্ট সেটআপের সাথে সাথে তাত্ক্ষণিকভাবে প্রাসঙ্গিক না হলেও, আমি দেখতে পেলাম যে আমার এক্সএমএল থেকে "কলাপসিংটুলারলআউট" অপসারণ যা অ্যাপবারআউটআউটটির ভিতরে আমার সরঞ্জামদণ্ডটি মোড়ানো ছিল সবকিছু কাজ করে।

আমার স্নাতকের:

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

এর পরিবর্তে:

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

তারপরে, আমি সেটআপসপ্টিঅ্যাকশনবার () কল করার আগে ক্রিয়াকলাপের অনক্রিটে শিরোনামটি সেট করি।


আপনি এটা করতে পারে। : যদি আপনি সত্যিই ধ্বসে টুলবার বিন্যাস প্রয়োজন, এই পরীক্ষা stackoverflow.com/questions/26486730/...
user1506104

@ চ্যান্তেল ওসেজো এটি আমার পক্ষেও কাজ করেছিল, এমনকি আমি একই লেআউটটি ব্যবহার করছিলাম। ধন্যবাদ
পরমজিৎ সিং রানা

1

ফাইলটিতে android:labelআপনার ক্রিয়াকলাপের বৈশিষ্ট্য নির্ধারণ করে এটি করা যেতে পারে AndroidManifest.xml:

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

এবং তারপরে এই লাইনটি অনক্রিট () এ যুক্ত করুন:

getSupportActionBar().setDisplayShowTitleEnabled(true);

0

আপনি এই বিকল্পটি যুক্ত করেছেন তা নিশ্চিত করুন:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);

0

উত্তরটি ডকুমেন্টেশনে রয়েছে (যা আপনি এখানে দেখতে পারেন ):

অ্যাকশনবার ইউটিলিটি পদ্ধতিগুলি ব্যবহার করতে, ক্রিয়াকলাপের getSupportActionBar () পদ্ধতিতে কল করুন। এই পদ্ধতিটি একটি অ্যাপকম্প্যাট অ্যাকশনবার অবজেক্টের রেফারেন্স দেয়। আপনার যদি সেই রেফারেন্সটি হয়ে যায়, আপনি অ্যাপ বারটি সামঞ্জস্য করতে অ্যাকশনবারের যে কোনও পদ্ধতিতে কল করতে পারেন। উদাহরণস্বরূপ, অ্যাপ বারটি আড়াল করার জন্য অ্যাকশনবার্ড হাইড () কল করুন।

এটিই আপনি সমাধানটি পেয়েছেন actually সরকারী ডকুমেন্টেশনের (যা সম্ভবত কিছুটা পড়ার ঝোঁক রয়েছে) একটি রেফারেন্স দেওয়ার কথা ভেবেছিলেন।


0

কোটলিনে আপনি এটি করতে পারেন:

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

এটি ঘটছে কারণ আপনি সরঞ্জামদণ্ড এবং অ্যাকশনবার উভয়টি ব্যবহার করছেন। এখন আপনি যেমন অ্যাকশন বার হিসাবে সরঞ্জামদণ্ডটি ব্যবহার করতে চান, আপনাকে প্রথমে সজ্জা প্রদত্ত অ্যাকশন বারটি অক্ষম করা উচিত।

আপনার থিমটি প্রসারিত করা সবচেয়ে সহজ উপায় Theme.AppCompat.NoActionBar


দুঃখিত আমি প্রশ্ন ভুল বুঝেছি।
হরেশ ছেলানা

1
@ হারেশচেলানা আপনি উত্তর পোস্ট করেছেন তবে কি জানেন যে সমস্যাটি আসলে কী?
পরেশ মায়ানী

আমি মনে করি যা সম্পর্কিত অ্যাকশন বার সেট টাইল ইস্যু যে আপনি যেমন উত্তর দিয়েছেন এবং যখন আপনি আমাকে বুঝতে পারেন আমি আমার উত্তরগুলি মুছে ফেলেছি তাই এখন আপনি আমার ভুল বোঝা ভাই সম্পর্কে চিন্তিত করবেন না।
হরেশ ছেলানা

1
@ পরেশমায়ানী আপনার উত্তরের জন্য আপনাকে ধন্যবাদ জানায়, তবে এটি আমার সমস্যার সমাধান করে না। দয়া করে আপডেট হওয়া প্রশ্নটি পরীক্ষা করুন
ক্রসোভোচকিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.