সেটিংটি android:windowActionBar="false"
সত্যই অ্যাকশনবারটিকে অক্ষম করে তবে তারপরে, আপনি যেমনটি বলেছিলেন, getActionBar();
খালি ফিরে আসে। এটি এর দ্বারা সমাধান করা হয়:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.splash); // be sure you call this AFTER requestFeature
এটি অ্যাকশনবার তৈরি করে এবং এটি প্রদর্শিত হওয়ার সুযোগ পাওয়ার আগে তা অবিলম্বে এটি লুকিয়ে রাখে।
তবে এখন আর একটি সমস্যা আছে। windowActionBar="false"
থিমটি রাখার পরে , ক্রিয়াকলাপটি অ্যাকশনবারের পরিবর্তে তার সাধারণ উইন্ডো শিরোনাম আঁকেন।
আমরা যদি *.NoTitleBar
স্টক থিমগুলির কিছু ব্যবহার করে এটি এড়াতে চেষ্টা করি বা আমরা <item name="android:windowNoTitle">true</item>
আমাদের নিজস্ব থিম রাখার চেষ্টা করি তবে এটি কার্যকর হবে না।
কারণটি হ'ল অ্যাকশনবার নিজেকে প্রদর্শনের জন্য উইন্ডো শিরোনামের উপর নির্ভর করে - এটি অ্যাকশনবারটি একটি রূপান্তরিত উইন্ডো শিরোনাম।
সুতরাং যে কৌশলটি আমাদের সাহায্য করতে পারে তা হ'ল আমাদের ক্রিয়াকলাপ থিম এক্সএমএলে আরও একটি জিনিস যুক্ত করা:
<item name="android:windowActionBar">false</item>
<item name="android:windowTitleSize">0dp</item>
এটি শূন্য উচ্চতার সাথে উইন্ডো শিরোনাম তৈরি করবে, এভাবে ব্যবহারিকভাবে অদৃশ্য।
আপনার ক্ষেত্রে, স্প্ল্যাশ স্ক্রিনটি প্রদর্শন করার পরে আপনি কেবল কল করতে পারেন
setContentView(R.layout.main);
getActionBar().show();
এবং আপনি সম্পন্ন হয়েছে। ক্রিয়াকলাপটি কোনও অ্যাকশনবারের ঝাঁকুনী বা উইন্ডো শিরোনাম প্রদর্শন না করে শুরু হবে।
Addon:
আপনি দেখাতে এবং ActionBar একাধিক বার লুকিয়ে তাহলে হয়ত আপনি খেয়াল করেছি যে প্রথম দেখানো হয় না অ্যানিমেটেড। তারপরে দেখানো এবং লুকানো অ্যানিমেটেড। আপনি যদি প্রথম প্রদর্শনীতে খুব অ্যানিমেশন রাখতে চান তবে আপনি এটি ব্যবহার করতে পারেন:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
// delaying the hiding of the ActionBar
Handler h = new Handler();
h.post(new Runnable() {
@Override
public void run() {
getActionBar().hide();
}
});
একই জিনিস অর্জন করা যেতে পারে:
protected void onPostResume() {
super.onPostResume();
getActionBar().hide();
তবে এটি কার্যকলাপের এটি প্রথম প্রদর্শন কিনা তা পরীক্ষা করতে কিছু অতিরিক্ত যুক্তি লাগতে পারে log
অ্যাকশনবারের আড়াল থেকে কিছুটা বিলম্ব করার ধারণাটি। একটি উপায়ে আমরা অ্যাকশনবারটি প্রদর্শিত হতে দেই, তবে তারপরে তা অবিলম্বে লুকিয়ে রাখি। সুতরাং আমরা প্রথম অ-অ্যানিমেটেড প্রদর্শন ছাড়িয়ে চলেছি এবং পরবর্তী শো দ্বিতীয় হিসাবে বিবেচিত হবে, সুতরাং এটি অ্যানিমেটেড হবে।
আপনারা যেমন অনুমান করতে পারেন যে দেরি করা ক্রিয়াকলাপটি গোপন করার আগে অ্যাকশনবারটি দেখা যেতে পারে। এটা আসলে ঘটনা। বেশিরভাগ সময় কিছুই দেখা যায় না তবুও একবারে একবারে আপনি দ্বিতীয় বারের জন্য অ্যাকশনবারের ঝাঁকুনি দেখতে পান।
যে কোনও ক্ষেত্রে এটি একটি দুর্দান্ত সমাধান নয়, তাই আমি কোনও পরামর্শকে স্বাগত জানাই।
ভি 7 সমর্থন অ্যাকশনবার ব্যবহারকারীর জন্য সংযোজন , কোডটি হবে:
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getSupportActionBar().hide();
Theme.AppCompat.Light
... এটি ব্যবহার উত্তর কিভাবে [1] [1]: stackoverflow.com/a/25365193/1364896