আমি এই কোডটি ব্যবহার করে মধুচক্রে অ্যাকশন বারটি আড়াল করতে পারি:
getActionBar().hide();
কিন্তু যখন কীবোর্ডটি খোলে, এবং ব্যবহারকারী কোনও কিছু অনুলিপি-পেস্ট করে, অ্যাকশন বারটি আবার দেখায়। আমি কীভাবে স্থায়ীভাবে অ্যাকশন বারটি অক্ষম করতে পারি?
আমি এই কোডটি ব্যবহার করে মধুচক্রে অ্যাকশন বারটি আড়াল করতে পারি:
getActionBar().hide();
কিন্তু যখন কীবোর্ডটি খোলে, এবং ব্যবহারকারী কোনও কিছু অনুলিপি-পেস্ট করে, অ্যাকশন বারটি আবার দেখায়। আমি কীভাবে স্থায়ীভাবে অ্যাকশন বারটি অক্ষম করতে পারি?
উত্তর:
যদি আপনি ব্যবহার করছেন Theme.Holo.Lightএবং Theme.Holo.Light.NoActionBarপ্রাক 3.2 ডিভাইসে ভেরিয়েন্টটি ব্যবহার করতে চান তবে আপনি এটিতে যুক্ত করতে পারেন styles.xml:
<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
এবং তারপরে এটি আপনার ক্রিয়াকলাপের থিম হিসাবে সেট করুন:
<activity android:theme="@style/NoActionBar" ... />
<item name="android:windowFullscreen">true</item>
ম্যানিফেস্টে ক্রিয়াকলাপের থিম সেট করে,
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
ActionBarআমার জন্য সম্পূর্ণরূপে সরিয়ে দেয় ।
আমি আমার অনক্রিট ক্রিয়াকলাপের মধ্যে নিম্নলিখিত কোড ব্যবহার করি:
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
উত্স: https://developer.android.com/guide/topics/ui/actionbar.html
অ্যান্ড্রয়েড স্টুডিওর ডিফল্ট উত্পন্ন ক্রিয়াকলাপের সুপারক্লাস ActionBarActivityএবং তারপরে, অন্যান্য প্রতিক্রিয়াগুলির সমাধানের কোনওটিই কাজ করে না। সমাধানের জন্য কেবল সুপারক্লাস পরিবর্তন করুন:
public class xxxActivity extends ActionBarActivity{
প্রতি:
public class xxxActivity extends Activity {
আপনি যদি অ্যাকশনবার এবং শিরোনাম ছাড়াই পূর্ণ পর্দা পেতে চান।
এটি স্টাইল.এক্সএমএল এ যুক্ত করুন
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
এবং ম্যানিফেস্ট.এক্সএমএল স্টাইলটি ব্যবহার করুন।
android:theme="@style/AppTheme.NoActionBar"
কাস্টম থিমগুলি এবং কোনও অ্যাকশন বার দেওয়ার মতো সেরা উপায়টি আমি খুঁজে পেয়েছি তা হল আমার প্রকল্পের সমস্ত ক্রিয়াকলাপের জন্য একটি সুপারক্লাস তৈরি করা এবং এটি অনক্রিয়েট () এ নিম্নলিখিত কোডের লাইনটি কল করুন -
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
এটি সর্বদা আমার জন্য কাজ করে। এই পদ্ধতির একমাত্র ইস্যুটি হ'ল, অ্যাপ্লিকেশনটি শুরু করার সময় আপনি সেকেন্ডের কিছু অংশের জন্য অ্যাকশন বার দেখতে পাবেন (কার্যকলাপ নয়, সম্পূর্ণ অ্যাপ্লিকেশন)।
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportActionBar().hide();
}
পরিবর্তন styles.xml এই DarkActionBar যান NoActionBar
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
আপনি অ্যাকশন বারটি কেবল লুকিয়ে রাখতে বাধ্য করতে পারেন:
ActionBar actionbar = getSupportActionBar();
actionBar.hide();
কেবল আপনার ডিফল্ট থিমটি ব্যবহার করুন।
আপনি যদি কোনও অ্যাকশন বার সহ একটি থিম চান তবে আপনি উদাহরণস্বরূপ 'NoActionBar' রূপটি ব্যবহার করতে পারেন। যদি আপনার বেস থিমটি নীচে থাকে
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
তাহলে আপনি ব্যবহার করতে পারেন
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
তবে আপনি যদি আপনার মূল থিমের বৈশিষ্ট্যগুলি ধরে রাখতে চান তবে অ্যাপ থিম আপনি নীচের মতো করতে পারেন
<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
আপনি আপনার বেস থিমের সমস্ত বৈশিষ্ট্য এইভাবে ধরে রাখতে পারেন এবং এগুলিকে আপনার NoActionBar থিমে স্পষ্টভাবে যুক্ত করতে হবে না :)
হলো থিমটি ব্যবহার করবেন না এবং অ্যাকশনবার অদৃশ্য হয়ে যাবে। এই কোডটি API 8+ এ আমার জন্য লাইব ভি 7 সমর্থন করে কাজ করছে:
<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
আপনার ক্রিয়াকলাপের জন্য সেই থিমটি সেট করুন:
<activity android:theme="@style/NoActionBar" ... />
এবং আপনার ক্রিয়াকলাপ ক্লাসে।
এটি অ্যাকশনবার্টিভিটি প্রসারিত করার পরেও এটি কাজ করে।
অ্যাকশন বারটি স্থায়ীভাবে আড়াল করার জন্য নীচের পদক্ষেপগুলি রয়েছে:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">।এখন পিতামাতাকে অন্য কোনও থিমের সাথে প্রতিস্থাপন করুন যার নামে "NoActionBar" রয়েছে।
ক। ক্রিয়াকলাপ_মাইন.এক্সএমএল এর ডিজাইন ট্যাবে স্যুইচ করে এবং তারপরে ইউআই-এর থিম ড্রপ-ডাউন তালিকায় প্রদত্ত প্রতিটি থিম চেষ্টা করে দেখতে কোনও থিম কীভাবে দেখায় তাও পরীক্ষা করতে পারেন।
আপনার যদি MainActivity প্রসারিত AppCompatActivity , নিশ্চিত করুন আপনি একটি AppCompat থিম ব্যবহার করুন।
আপনার onCreateপদ্ধতিতে এই কোডটি আগে টাইপ করুন setContentView:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
আমি এটির পরিবর্তে ডিজাইনার পদ্ধতির পোস্ট করতে চাই, এটি আপনার ব্যবসায়ের যুক্তি থেকে নকশা আলাদা রাখবে:
পদক্ষেপ 1. (রীতি- মানগুলি>> স্টাইলস.এক্সএমএল) এ নতুন শৈলী তৈরি করুন: মূলত এটি আপনার সামগ্রিক স্কিমের অনুলিপি বিভিন্ন পিতা - মাতা = "থিম.অ্যাপকম্প্যাট.লাইট.নোকশনবার" এর সাথে রয়েছে is
<!-- custom application theme. -->
<style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
</style>
পদক্ষেপ 2: আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে, আপনি যে কার্যকলাপটি চান তাতে এই থিমটি যুক্ত করুন: উদাহরণস্বরূপ আমি অ্যাকশন-বার ছাড়াই আমার মূল ক্রিয়াকলাপটি চাই তাই নীচের মত এটি যুক্ত করুন:
<activity android:name=".MainActivity"
android:theme="@style/MarkitTheme">
এটি অনেক কিছুই চেষ্টা করার পরে আমার জন্য সেরা সমাধান।
আপনি styles.xmlফাইলটিতে ডিফল্ট থিমের নাম পরিবর্তন করে একটি নতুন থিম তৈরি করেছেন তা নিশ্চিত করুন :
<style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">
এবং ড্রপ-ডাউন থেকে থিমটি পরিবর্তনের পরিবর্তে main_activity.xmlআপনার থিমটিকে যাকে বলেছিলেন তাতে পরিবর্তন করুন ।
অ্যাকশন বারটি সরানোর সময় আপনি ভিউপাগারটি ধরে রাখতে চান যেখানে অন্য একটি আকর্ষণীয় সমাধান হ'ল শো হিসাবে একটি স্টাইল থাকা
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/NoActionBarStyle</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
<item name="android:backgroundSplit">@null</item>
<item name="android:displayOptions"></item>
</style>
অ্যান্ড্রয়েডের বেশিরভাগ ডায়ালার অ্যাপ্লিকেশনগুলি অ্যাকশন বার ছাড়াই ভিউপ্যাজারটি দেখায়।
রেফ: https://github.com/CyanogenMod/android_packages_apps_Dialer
এটি styles.xmlফাইলটিতে ব্যবহার করুন:
<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
আমি এই সমাধানটি ব্যবহার করি:
ম্যানিফেস্টে, আপনার ক্রিয়াকলাপের ভিতরে:
android:label="@string/empty_string"
এবং স্ট্রিং.এক্সএমএল:
<string name="empty_string">""</string>
এইভাবে আপনি অ্যাকশনবার (বা সরঞ্জামদণ্ড) শিরোনাম সহ রাখেন, কিন্তু যখন কার্যকলাপ তৈরি করা হয় শিরোনামটি স্বয়ংক্রিয়ভাবে খালি থাকে।
আশ্চর্যজনকভাবে যথেষ্ট, নেক্সাস 7.৪.৪.২ (এপিআই ১৯) চলমান এ নির্মাণের সময় এগুলির কোনওটিই আমার পক্ষে কাজ করেনি। বেশিরভাগ অংশে, একটি ফাঁকা ক্রিয়াকলাপ অ্যাপ্লিকেশন তৈরি করার পরে কমপক্ষে অ্যান্ড্রয়েড স্টুডিওর সর্বশেষতম সংস্করণ (১.২.১.১) এর সাথে:
অ্যান্ড্রয়েড থিম = "@ শৈলী / AppTheme"
ক্রিয়াকলাপের উপাদান নয়, অ্যাপ্লিকেশন উপাদানটিতে রয়েছে। যদি আমি উপরের কোডটি সরিয়ে ফেলে বা এটিকে পরিবর্তন করার চেষ্টা করি:
অ্যান্ড্রয়েড থিম = "@ অ্যানড্রইড: শৈলী / Theme.Holo.Light.NoActionBar"
অ্যাপটি চলবে না ... যদি এটি আপনার সাথে ঘটে থাকে তবে কেবল আপনার স্টাইলস.এক্সএমএল ফাইল (রেজোলিউশন মান> স্টাইলস.এক্সএমএল) এ যান এবং এই ব্লকের মতো পিতামাতার শেষের দিকে .NOTitleBar যুক্ত করুন:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
অ্যান্ড্রয়েডমেনিস্ট ফাইলটিতে কোনও পরিবর্তন প্রয়োজন।
আপনার মধ্যে activity_main.xml, আপনি লাইনটি থেকে সেখান থেকে সামঞ্জস্য করতে পারেন:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
android:theme="@style/Theme.Design.Light.NoActionBar"
.......
">
কখনও কখনও আপনি যখন এই জাতীয় জিনিস দেখতে পারেন এখানে ক্লিক করুন , আপনি এখান থেকে "noActionBar" থিম নির্বাচন করতে পারেন।
আশা করি আমি আপনাকে সাহায্য করেছি।