নতুন টুলবারের জন্য আপনি কীভাবে শিরোনাম রঙ সেট করবেন?


119

আমি নতুন ভি 7 সরঞ্জামদণ্ড ব্যবহার করছি এবং আমার জীবনের জন্য শিরোনামটির রঙ কীভাবে পরিবর্তন করা যায় তা অনুমান করতে পারি না। আমি টুলবারের @ স্টাইলকে স্টাইল.এক্সএমএল-তে ঘোষিত স্টাইলে সেট করেছি এবং একটি টেক্সট কালারের সাথে একটি শিরোনাম টেক্সটস্টাইল প্রয়োগ করেছি। আমি কিছু অনুপস্থিত করছি? আমি ললিপপের জন্য কোডিং করছি তবে বর্তমানে একটি কিটক্যাট ডিভাইসে পরীক্ষা করছি।

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

    <style name="ActionBar" parent="Theme.AppCompat">
        <item name="android:background">@color/actionbar_background</item>
        <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
    </style>

    <style name="ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_title_text</item>
    </style>

</resources>

actionbar.xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_actionbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    style="@style/ActionBar"/>

উত্তর:


241

বিকল্প 1) দ্রুত এবং সহজ উপায় (কেবলমাত্র সরঞ্জামদণ্ড)

যেহেতু appcompat-v7-r23 আপনি নীচের বৈশিষ্ট্যগুলি সরাসরি আপনার Toolbarবা এর স্টাইলে ব্যবহার করতে পারেন :

app:titleTextColor="@color/primary_text"
app:subtitleTextColor="@color/secondary_text"

যদি আপনার সর্বনিম্ন এসডিকে 23 হয় এবং আপনি নেটিভ ব্যবহার করেন তবে Toolbarকেবলমাত্র নামস্থানটির উপসর্গটি পরিবর্তন করুন android

জাভাতে আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করতে পারেন:

toolbar.setTitleTextColor(Color.WHITE);
toolbar.setSubtitleTextColor(Color.WHITE);

এই পদ্ধতিগুলি একটি রঙ নেওয়া যা কোনও রঙ সংস্থান আইডি নয়!

বিকল্প 2) ওভাররাইড সরঞ্জামদণ্ড শৈলী এবং থিম বৈশিষ্ট্য

বিন্যাস / xxx.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.MyApp.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    style="@style/Widget.MyApp.Toolbar.Solid"/>

মান / styles.xml

<style name="Widget.MyApp.Toolbar.Solid" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/actionbar_color</item>
    <item name="android:elevation" tools:ignore="NewApi">4dp</item>
    <item name="titleTextAppearance">...</item>
</style>

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
    <!-- Parent theme sets colorControlNormal to textColorPrimary. -->
    <item name="android:textColorPrimary">@color/actionbar_title_text</item>
</style>

সাহায্য করুন! আমার আইকনগুলিও রঙ পরিবর্তন করেছে!

@ পিটারকান্ট জানিয়েছে যে এটি ওভারফ্লো বোতাম, নেভিগেশন ড্রয়ার বোতাম এবং পিছনের বোতামের রঙকে প্রভাবিত করে। এটি এর পাঠ্যের রঙও পরিবর্তন করে SearchView

আইকন রঙ সম্পর্কিত: colorControlNormalউত্তরাধিকার সূত্রে

  • android:textColorPrimary গা dark় থিমের জন্য (কালো রঙের সাদা)
  • android:textColorSecondary হালকা থিমগুলির জন্য (সাদা রঙের উপর কালো)

আপনি যদি এটি অ্যাকশন বারের থিমটিতে প্রয়োগ করেন তবে আপনি আইকনের রঙটি কাস্টমাইজ করতে পারেন।

<item name="colorControlNormal">#de000000</item>

আর -23 পর্যন্ত অ্যাপকম্প্যাট-ভি 7-তে একটি বাগ ছিল যা আপনাকে এর মতো নেটিভ অংশটিকে ওভাররাইড করতে হবে:

<item name="android:colorControlNormal" tools:ignore="NewApi">?colorControlNormal</item>

সাহায্য করুন! আমার অনুসন্ধান ভিউ একটি গোলযোগ!

দ্রষ্টব্য: এই বিভাগটি সম্ভবত অপ্রচলিত।

যেহেতু আপনি অনুসন্ধান উইজেটটি ব্যবহার করেন যা কোনও কারণে অ্যাপকম্প্যাট-ভি 7 এর সাথে অন্তর্ভুক্ত হওয়াটির চেয়ে ভিন্ন ব্যাক তীর (দৃশ্যত, প্রযুক্তিগতভাবে নয়) ব্যবহার করে, তাই আপনাকে এটিকে অ্যাপের থিমটিতে ম্যানুয়ালি সেট করতে হবে । সমর্থন লাইব্রেরির আঁকাগুলি সঠিকভাবে রঙিত হয়। অন্যথায় এটি সবসময় সাদা হবে।

<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>

অনুসন্ধান দেখার পাঠ্য হিসাবে ... কোনও সহজ উপায় নেই। এর উত্সটি খননের পরে আমি টেক্সট ভিউতে যাওয়ার একটি উপায় খুঁজে পেয়েছি। আমি এটি পরীক্ষা করিনি তাই দয়া করে মন্তব্যগুলিতে আমাকে জানান যদি এটি কাজ না করে।

SearchView sv = ...; // get your search view instance in onCreateOptionsMenu
// prefix identifier with "android:" if you're using native SearchView
TextView tv = sv.findViewById(getResources().getIdentifier("id/search_src_text", null, null));
tv.setTextColor(Color.GREEN); // and of course specify your own color

বোনাস: অ্যাকশনবার শৈলী এবং থিমের বৈশিষ্ট্যগুলিকে ওভাররাইড করুন

ডিফল্ট অ্যাকশন অ্যাপকম্প্যাট-ভি 7 অ্যাকশন বারের জন্য উপযুক্ত স্টাইলিং এর মতো দেখতে পাবেন:

<!-- ActionBar vs Toolbar. -->
<style name="Widget.MyApp.ActionBar.Solid" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="background">@color/actionbar_color</item> <!-- No prefix. -->
    <item name="elevation">4dp</item> <!-- No prefix. -->
    <item name="titleTextStyle">...</item> <!-- Style vs appearance. -->
</style>

<style name="Theme.MyApp" parent="Theme.AppCompat">
    <item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Solid</item>
    <item name="actionBarTheme">@style/ThemeOverlay.MyApp.ActionBar</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>

2
এই সমাধানটির বিভিন্ন পার্শ্ব প্রতিক্রিয়া রয়েছে। টেক্সটকালার প্রাইমারিটি নেভিগেশন ড্রয়ার বোতামে এবং অনুসন্ধান উইজেটের পাঠ্যে প্রয়োগ করা হয়। তদ্ব্যতীত, পিছনের বোতামের রঙ সাদা সেট করা হয়েছে (আমাকে জিজ্ঞাসা করবেন না কেন)।
পিটার নট

@ পিটারকান্ট তখন আমি বুঝতে পারি নি প্রস্তাবিত সমাধানটি কতটা অসম্পূর্ণ। সম্পাদনার পরে - এটি আমি এটি ব্যবহার করি এবং এটি কার্যকর হয়। তবে দয়া করে অনুসন্ধান দেখুন পাঠ্যের রঙ স্নিপেট পর্যালোচনা করুন।
ইউজেন পেচানেক

এখন এটি প্রায় সঠিকভাবে কাজ করে। দুটি নোট: অনুসন্ধান উইজেটে পাঠ্য খনন করা ভাল ধারণা নয়, ভবিষ্যতে এর আইডি পরিবর্তন করা যেতে পারে। উইজেট.মাই অ্যাপ.অ্যাকশনবারে পটভূমি সম্পত্তি বোতাম এবং সরঞ্জামদ্বারেও পটভূমিকে প্রভাবিত করে। পটভূমি সরাসরি <android.support.v7.widget.Toolbar> এ সেট করতে হবে।
পিটার নট

আমি সম্মতি জানাই, এটি একটি ভাল ধারণা নয়, আমি কমপক্ষে সেখানে একটি নাল চেক যুক্ত করব (তবে সেই আইডি পরিবর্তনের অসুবিধাগুলি কী)। ব্যাকগ্রাউন্ড সম্পর্কিত: আপনি ঠিক নন, আপনি যদি এটিকে সরঞ্জামদণ্ডের উপাদানটিতে স্টাইল হিসাবে যুক্ত করেন তবে পটভূমিটি কেবলমাত্র সরঞ্জামদণ্ড উইজেটের ক্ষেত্রে প্রযোজ্য। আপনি যদি পটভূমিটিকে সংজ্ঞায়িত করেন ThemeOverlayএবং এটি একটি থিম হিসাবে ব্যবহার করেন , তবে প্রতিটি সন্তানের উপাদানগুলির পটভূমিও রঙিন হয়ে উঠবে।
ইউজেন পেচানেক

ঠিক আছে, আপনি স্টাইল বনাম থিম দিয়ে ঠিক আছেন। আমার ভুল.
পিটার নট

40

এখানে আপনার সমাধানটি যদি আপনাকে অনুসন্ধানের উইজেটে পাঠ্যের রঙ না করে কেবল শিরোনামের রঙ পরিবর্তন করতে হয় Here

বিন্যাস / toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:background="@color/toolbar_bg"
    app:theme="@style/AppTheme.Toolbar"
    app:titleTextAppearance="@style/AppTheme.Toolbar.Title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"/>

মান / themes.xml

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

    <style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
        <!-- Customize color of navigation drawer icon and back arrow --> 
        <item name="colorControlNormal">@color/toolbar_icon</item>
    </style>

    <style name="AppTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
        <!-- Set proper title size -->
        <item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
        <!-- Set title color -->
        <item name="android:textColor">@color/toolbar_title</item>
    </style>
</resources>

একইভাবে, আপনি সাবটাইটেলটেক্সট অ্যাপিয়ারেন্সও সেট করতে পারেন।


আমার একটি সমস্যা ছিল যেখানে সরঞ্জামদণ্ডটি কোনও খণ্ডে বা কোনও ক্রিয়াকলাপে রয়েছে কিনা তার উপর নির্ভর করে শিরোনামটির রঙ ভিন্ন হবে। রঙটি ওভাররাইড করার জন্য এই কৌশলটিই কেবলমাত্র আমি খুঁজে পেতাম (রঙ পরিবর্তন করার অন্যান্য উপায়গুলি কার্যকর হয় নি)। আমি আশা করি এটি আরও বেশি লোককে সহায়তা করবে। ধন্যবাদ!
পেড্রো লোরেরিও

3
@ পিটার নট আপনাকে কেবল এটি API21 এবং তার উপরে কাজ করতে নির্দিষ্ট করতে হবে, কোন ধরণের এটি অকেজো করে তোলে
ডোরুচিদান

@ ডুরোচিদান জেলি বিন (এপিআই 16) দিয়ে পরীক্ষা করেছেন: এটি একটি কবজির মতো কাজ করে!
ক্রুবিও

ক্রিয়াকলাপে থিম সেট করা সম্ভব নয়। আইই, <ক্রিয়াকলাপ অ্যান্ড্রয়েড: নাম = "Someকোন অ্যাক্টিভিটি" অ্যান্ড্রয়েড: থিম = "@ শৈলী / অ্যাপ থিম.টুলবার"
ট্রান্সলেশন

11

আপনি যদি 23 এবং ততোধিক এপিআই সমর্থন করে থাকেন তবে এখন আপনি সরঞ্জামদণ্ডের শিরোনাম রঙ সেট করতে শিরোনাম টেক্সট কালার বৈশিষ্ট্যটি ব্যবহার করতে পারেন ।

বিন্যাস / toolbar.xml

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:titleTextColor="@color/colorPrimary"
        />

MyActivity.java

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar)
toolbar.setTitleTextColor(Color.WHITE);

এগুলি অ্যাপকম্প্যাট লাইব্রেরি দ্বারা সমর্থিত বলে মনে হয়।
ইউজেন পেচানেক

10

অ্যান্ড্রয়েড 4.4 এবং 6.0 এও app:titleTextColorআমার সাথে আমার android.support.v7.widget.Toolbarকাজগুলি সেট করা com.android.support:appcompat-v7:23.1.0:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:titleTextColor="@android:color/white" />

4
লক্ষ্য করুন যে নামস্থানটি অ্যাপ্লিকেশন এবং অ্যান্ড্রয়েড নয়।
টমমি

কেবল এই লাইন অ্যাপ্লিকেশনটি যুক্ত করুন: শিরোনামটেক্সটকলার = "@ অ্যান্ড্রয়েড: রঙ / সাদা" আমার জন্য কিটক্যাট এবং তার উপরেও কাজ করেছে। ধন্যবাদ @ হুনিয়াডিম
ঘনশ্যাম

9

এটি আমাকে কিছুটা বিরক্ত করেছিল এবং প্রদত্ত যে কোনও উত্তর আমার পছন্দ হয়নি, সুতরাং এটি কীভাবে কাজ করে তা দেখার জন্য উত্সটিতে আমার নজর ছিল।

ফ্র্যাক্টালআরঞ্চ সঠিক পথে রয়েছে তবে এটি এপিআই 23 এর নীচে ব্যবহার করা যেতে পারে এবং এটি নিজেই টুলবারে সেট করতে হবে না।

অন্যরা যেমন বলেছে আপনি এর সাহায্যে সরঞ্জামদণ্ডে একটি স্টাইল সেট করতে পারেন

app:theme="@style/ActionBar"

এবং সেই স্টাইলে আপনি শিরোনাম পাঠ্যের রঙটি এতে সেট করতে পারেন

<item name="titleTextColor">#00f</item>

প্রাক এপিআই 23 বা 23+ এর জন্য

<item name="android:titleTextColor">your colour</item>

সম্পূর্ণ এক্সএমএল

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent"
    app:theme="@style/ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"/>


<style name="ActionBar" parent="@style/ThemeOverlay.AppCompat.ActionBar">
    <item name="android:titleTextStyle">@style/ActionBarTextStyle</item>
    <item name="titleTextColor">your colour</item>
    <item name="android:background">#ff9900</item>
</style>

একটি সরঞ্জামদণ্ডের জন্য সেট করা যেতে পারে যে সমস্ত বৈশিষ্ট্য এখানে

<declare-styleable name="Toolbar">
    <attr name="titleTextAppearance" format="reference" />
    <attr name="subtitleTextAppearance" format="reference" />
    <attr name="title" />
    <attr name="subtitle" />
    <attr name="gravity" />
    <attr name="titleMargins" format="dimension" />
    <attr name="titleMarginStart" format="dimension" />
    <attr name="titleMarginEnd" format="dimension" />
    <attr name="titleMarginTop" format="dimension" />
    <attr name="titleMarginBottom" format="dimension" />
    <attr name="contentInsetStart" />
    <attr name="contentInsetEnd" />
    <attr name="contentInsetLeft" />
    <attr name="contentInsetRight" />
    <attr name="maxButtonHeight" format="dimension" />
    <attr name="navigationButtonStyle" format="reference" />
    <attr name="buttonGravity">
        <!-- Push object to the top of its container, not changing its size. -->
        <flag name="top" value="0x30" />
        <!-- Push object to the bottom of its container, not changing its size. -->
        <flag name="bottom" value="0x50" />
    </attr>
    <!-- Icon drawable to use for the collapse button. -->
    <attr name="collapseIcon" format="reference" />
    <!-- Text to set as the content description for the collapse button. -->
    <attr name="collapseContentDescription" format="string" />
    <!-- Reference to a theme that should be used to inflate popups
         shown by widgets in the toolbar. -->
    <attr name="popupTheme" format="reference" />
    <!-- Icon drawable to use for the navigation button located at
         the start of the toolbar. -->
    <attr name="navigationIcon" format="reference" />
    <!-- Text to set as the content description for the navigation button
         located at the start of the toolbar. -->
    <attr name="navigationContentDescription" format="string" />
    <!-- Drawable to set as the logo that appears at the starting side of
         the Toolbar, just after the navigation button. -->
    <attr name="logo" />
    <!-- A content description string to describe the appearance of the
         associated logo image. -->
    <attr name="logoDescription" format="string" />
    <!-- A color to apply to the title string. -->
    <attr name="titleTextColor" format="color" />
    <!-- A color to apply to the subtitle string. -->
    <attr name="subtitleTextColor" format="color" />
</declare-styleable>

4

ভিতরে Toolbarশিরোনাম রঙ পরিবর্তন করার সহজ উপায়CollapsingToolbarLayout

শৈলীতে নীচে যুক্ত করুন CollapsingToolbarLayout

<android.support.design.widget.CollapsingToolbarLayout
        app:collapsedTitleTextAppearance="@style/CollapsedAppBar"
        app:expandedTitleTextAppearance="@style/ExpandedAppBar">

styles.xml

<style name="ExpandedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textSize">24sp</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

    <style name="CollapsedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

3

আপনি যদি অ্যাপকোম্প্যাট-ভি 7 অ্যাপ্লিকেশন ব্যবহার করতে পারেন : শিরোনাম পাঠ্য রঙ = "# fff">

<android.support.v7.widget.Toolbar  
        android:id="@+id/toolbar"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:background="@color/colorPrimary"   
        android:visibility="gone"   
        app:titleTextColor="#fff">   
    </android.support.v7.widget.Toolbar>   

2

এটি আমার পক্ষে কাজ করেছে

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    app:navigationIcon="@drawable/ic_back"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:subtitleTextColor="@color/white"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:title="This week stats"
    app:titleTextColor="@color/white">


    <ImageView
        android:id="@+id/submitEditNote"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        android:src="@android:drawable/ic_menu_manage" />
</android.support.v7.widget.Toolbar>

2

আপনার এক্সএমএল ... টুলবার.এক্সএমএলে একটি সরঞ্জামদণ্ড তৈরি করুন:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"

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

তারপরে আপনার টুলবার.এক্সএমএলে নিম্নলিখিতটি যুক্ত করুন:

app:titleTextColor="@color/colorText"
app:title="@string/app_name">

রিমবার @ কালার / কালারটেক্সট হ'ল কালার টেক্সট নামের কালার অ্যাট্রিবিউট এবং আপনার রঙ সহ আপনার রঙ.xML ফাইল। এটি আপনার টুলবার.এক্সএমএল এর ভিতরে আপনার রঙকে হার্ডকোডিং না করে আপনার স্ট্রিংগুলি কল করার সেরা উপায়। আপনার পাঠ্যকে সংশোধন করার জন্য অন্যান্য বিকল্প রয়েছে যেমন: পাঠ্য চেহারা ... ইত্যাদি ... কেবল অ্যাপ টাইপ করুন: পাঠ্য ... এবং ইন্টিলেসেন্স আপনাকে অ্যান্ড্রয়েড স্টুডিওতে বিকল্প দেয়।

আপনার চূড়ান্ত সরঞ্জামদণ্ডটি দেখতে এটির মতো হওয়া উচিত:

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_weight="1"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/Theme.AppCompat"
       app:subtitleTextAppearance="@drawable/icon"
        app:title="@string/app_name">
    </android.support.v7.widget.Toolbar>

এনবি: এই সরঞ্জামদণ্ডটি আপনার ক্রিয়াকলাপ_মাইন.এক্সএমএল.এসি পিসির ভিতরে থাকা উচিত

আরেকটি বিকল্প হ'ল এটি আপনার ক্লাসে করা:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitleTextColor(Color.WHITE);

শুভকামনা


আরে, ধন্যবাদ এই কাজ করে। কিন্তু আপনি কীভাবে কেবল সেই শৈলীগুলিতে সেই বৈশিষ্ট্যটি ব্যবহার করবেন তা জানেন? এর পরিবর্তে এক্সএমএল মেসিয়ার করা। ধন্যবাদ :)
গ্রেগজ

স্পষ্টতই আপনার @ কালারটি আপনার স্ট্রিং রিসোর্স থেকে সরাসরি আসে hatআপনার এক্সএমএলটি আপনার রঙগুলিকে হার্ডকোডিংয়ের চেয়েও সুন্দর।
রাইলিমান্ডা

1

রঙ পরিবর্তন করার জন্য

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="?attr/colorPrimary"

/>

Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
        myToolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.Auth_Background));
        setSupportActionBar(myToolbar);

1

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

উত্তর যে titleTextColorহয় styles.xml পাওয়া যায় আপনি যে থেকে উত্তরাধিকারী কিছু অগ্রাহ্য করা হয় Widget.AppCompat.Toolbar। আজ আমি মনে করি সেরা পছন্দ হওয়ার কথা Widget.MaterialComponents.Toolbar:

<style name="Widget.LL.Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
     <item name="titleTextAppearance">@style/TextAppearance.LL.Toolbar</item>
     <item name="titleTextColor">@color/white</item>
     <item name="android:background">?attr/colorSecondary</item>
</style>

<style name="TextAppearance.LL.Toolbar" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
     <item name="android:textStyle">bold</item>
</style>

এবং আপনার অ্যাপ্লিকেশন থিমে, সরঞ্জামদণ্ড স্টাইলটি নির্দিষ্ট করুন:

<item name="toolbarStyle">@style/Widget.LL.Toolbar</item>

এখন আপনি সেই এক্সএমএলটি ছেড়ে যেতে পারেন যেখানে আপনি সরঞ্জাম বারটি অপরিবর্তিত রেখেছেন। দীর্ঘদিন ধরে আমি ভেবেছিলাম android:textColorসরঞ্জামদণ্ডে শিরোনাম পাঠ্যের উপস্থিতি পরিবর্তন করা উচিত, তবে কোনও কারণে এটি হয় না।


0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:titleTextColor="@color/white"
    android:background="@color/green" />


0
public class MyToolbar extends android.support.v7.widget.Toolbar {

public MyToolbar(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    AppCompatTextView textView = (AppCompatTextView) getChildAt(0);
    if (textView!=null) textView.setTextAppearance(getContext(), R.style.TitleStyle);
}

}

বা মেইনএকটিভিটি থেকে সাধারণ ব্যবহার:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarMain);
setSupportActionBar(toolbar);
((AppCompatTextView) toolbar.getChildAt(0)).setTextAppearance(this, R.style.TitleStyle);

style.xml

<style name="TileStyle" parent="TextAppearance.AppCompat">
    <item name="android:textColor">@color/White</item>
    <item name="android:shadowColor">@color/Black</item>
    <item name="android:shadowDx">-1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">1</item>
</style>

এই কোডটি প্রশ্নের উত্তর দিতে পারে, তবে এটি কীভাবে কাজ করে এবং কখন এটি ব্যবহার করবে তা ব্যাখ্যা করে কিছু প্রসঙ্গ অন্তর্ভুক্ত করা ভাল । কোড-কেবল উত্তরগুলি দীর্ঘমেয়াদে কার্যকর নয়।
অদিতি রাওয়াত

0

এটা দিয়ে toolbar.setTitleTextAppearance(context, R.style.TitleTextStyle);

// এটি এমন শৈলী যেখানে আপনি নিজের রঙের স্কিমটি অনুকূলিত করতে পারবেন

 <style name="TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:fontFamily">@string/you_font_family</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textAppearance">@style/you_text_style</item>
    <item name="android:textColor">#000000</item>
    <item name="android:textSize">20sp</item>
</style>

0

খুব সহজ, এটি আমার পক্ষে কাজ করেছে (শিরোনাম এবং আইকন সাদা):

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/PrimaryColor"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:elevation="4dp" />

0

উপাদান উপাদান লাইব্রেরির সাহায্যে আপনি এটি ব্যবহার করতে পারেন app:titleTextColor গুণাবলী ।

ইন বিন্যাস তোমার মত কিছু ব্যবহার করতে পারেন:

<com.google.android.material.appbar.MaterialToolbar
    app:titleTextColor="@color/...."
    .../>

আপনি একটি কাস্টম স্টাইলও ব্যবহার করতে পারেন :

<com.google.android.material.appbar.MaterialToolbar
     style="@style/MyToolbarStyle"
    .../>

( Widget.MaterialComponents.Toolbar.Primaryশৈলী প্রসারিত ) সহ:

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar.Primary">
       <item name="titleTextColor">@color/....</item>
  </style>

বা ( Widget.MaterialComponents.Toolbarশৈলী প্রসারিত ):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar">
       <item name="titleTextColor">@color/....</item>
  </style>

এখানে চিত্র বর্ণনা লিখুন

আপনি বৈশিষ্ট্যটি ব্যবহার করে শৈলী দ্বারা সংজ্ঞায়িত রঙ ওভাররাইড করতে পারেন android:theme( শৈলী ব্যবহার করে Widget.MaterialComponents.Toolbar.Primary):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar.Primary"
        android:theme="@style/MyThemeOverlay_Toolbar"
        />

সঙ্গে:

  <style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is also used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/...</item>
  </style>

এখানে চিত্র বর্ণনা লিখুন

বা ( Widget.MaterialComponents.Toolbarস্টাইল ব্যবহার করে ):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar"
        android:theme="@style/MyThemeOverlay_Toolbar2"

সঙ্গে:

  <style name="MyThemeOverlay_Toolbar3" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is used by title -->
    <item name="android:textColorPrimary">@color/white</item>

    <!-- This attributes is used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/secondaryColor</item>
  </style>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.