ক্রিয়াকলাপ তৈরি হওয়ার আগে কীভাবে অ্যাকশন বারটি লুকিয়ে রাখা যায় এবং তারপরে এটি আবার প্রদর্শন করা যায়?


243

আমার মধুচক্র অ্যাপে আমার স্প্ল্যাশ স্ক্রিন প্রয়োগ করতে হবে। স্প্ল্যাশ দেখানোর জন্য আমি এই কোডটি ক্রিয়াকলাপের অনক্রিটে ব্যবহার করি:

setContentView(R.layout.splash);
getActionBar().hide();

এবং এই কোডটি কিছু সময়ের পরে প্রধান ইউআই দেখানোর জন্য:

setContentView(R.layout.main);
getActionBar().show();

তবে অনক্রিয়েট কল করার আগে এবং স্প্ল্যাশ প্রদর্শিত হওয়ার আগে অ্যাকশন বার দেখানোর সময় খুব অল্প পরিমাণ থাকে।

অ্যাকশন বারকে আমি কীভাবে অদৃশ্য করতে পারি?

আমি অ্যাকশন বার ছাড়াই ক্রিয়াকলাপে থিম প্রয়োগ করার চেষ্টা করেছি:

<item name="android:windowActionBar">false</item>

তবে সেক্ষেত্রে getActionBar () সর্বদা শূন্য হয় এবং আমি এটি আবার দেখানোর কোনও উপায় খুঁজে পাই না।


জন্য Theme.AppCompat.Light... এটি ব্যবহার উত্তর কিভাবে [1] [1]: stackoverflow.com/a/25365193/1364896
সামি Eltamawy

উত্তর:


335

সেটিংটি 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();

2
@ নিউটন_গুইমা হ্যাঁ, এটি কাজ করে। কেবল সমর্থন উইন্ডো ফিচার (উইন্ডো .এফইচার_অ্যাকশন_বার) ব্যবহার করার কথা মনে রাখবেন
স্ক্যান

@ ক্লারিক - আপনি কীভাবে এগুলি দিয়ে কাজ করতে পারেন setTheme? কারণ আমি যদি ম্যানিফেস্টের থেকে থিমটি সেট করি তবে আপনার উত্তর দুর্দান্ত কাজ করেছে, তবে আমি যদি এটিতে করি onCreate(আমার ক্ষেত্রে থিমটি অন্ধকার থিমের আলোকে অগ্রাধিকারের উপর নির্ভর করে) আমি আমার থিমটিতে সেট করা একটির আগে ডিফল্ট হলো অ্যাকশন বারের ঝলক দেখা দেয় যাহাই হউক না কেন। তবে সম্ভবত এটি অন্য একটি সম্পূর্ণ এসও প্রশ্নের পক্ষে মূল্যবান।
dentex

2
@ ক্লারিক ধন্যবাদ আমি আমার ইস্যুটি android:theme="@android:style/Theme.NoTitleBar"ম্যানিফেস্টে এবং তারপরে setTheme(R.style.MyTheme)মূল ক্রিয়াকলাপে সেট করে সমাধান করেছি onCreate; এটি নিশ্চিত করে (অ্যান্ড্রয়েড 4+ এ) ActionBarআমার থিমটিতে আমি যেভাবে সংজ্ঞায়িত করেছি তার আগে ডিফল্ট হলোর ফ্ল্যাশ এড়িয়ে যাওয়া (আমি এখানে এসে পৌঁছানোর চেষ্টা করেছি এটির উপায়টি খুঁজে পাওয়ার জন্য; আমার আসলে কোনও স্প্ল্যাশ-স্ক্রিনের দরকার নেই)।
dentex

2
আমি getSupportActionBar().hide();পরে কল করি getWindow().requestFeature(Window.FEATURE_ACTION_BAR);এবং একটি এনপিই দিয়ে সমস্ত কিছু ফুঁড়ে উঠল। কোন ধারনা? সমস্যা আছে Theme.AppCompat?
loeschg

1
@loeschg: আমি একই সমস্যা ছিল এবং এই সমাধান পাওয়া যায়নি: stackoverflow.com/a/20315456/3514976
nonzaprej

50

অ্যাকশন বারটি লুকানোর জন্য আপনার .class ফাইলে এই সাধারণ কোডটি ব্যবহার করা

getSupportActionBar().hide();

37

আপনি যদি অ্যাকশনবারেরলক ব্যবহার করে থাকেন তবে আপনার ক্রিয়াকলাপে থিম.শেরলক.নো অ্যাকশনবার থিম ব্যবহার করুন

<activity 
    android:name=".SplashScreenActivity"
    android:theme="@style/Theme.Sherlock.NoActionBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

1
একই মান অ্যান্ড্রয়েড 3+ ActionBar (কোন শার্লক) জন্য প্রযোজ্য: <activity android:theme="@android:style/Theme.NoActionBar">
অ্যালেক্স Semeniuk

নিখুঁত সমাধান :) ধন্যবাদ
আলিকানবতুর

7
আমি দেখতে পাচ্ছি না এটি কীভাবে ইলিয়া প্রশ্নের উত্তর। থিমটি সেট করা Theme.Sherlock.NoActionBarমানে কল করা getActionBar()বা getSupportActionBar()(পরবর্তীকালে অ্যাকশন বারটি দেখানো) বাতিল হয়ে যায় ...
আদিল হুসেন

@ অ্যালেক্সসেনিমুক যখন আমি ম্যানিফেস্টে সেই লাইনটি ব্যবহার করি, তখন আমি এই ত্রুটিটি error: Error: No resource found that matches the given name (at 'theme' with value '@android:style/ Theme.NoActionBar').
পাই

1
@ SiKni8 আপনি কি নিশ্চিত যে আপনি নিজের অ্যাপ্লিকেশনটির জন্য API13 + লাইব্রেরি ব্যবহার করছেন?
অ্যালেক্স সেমানিয়ুক

19

দুটি শৈলী তৈরি করুন:

<style name="AppThemeNoBar" parent="Theme.AppCompat.Light">
     <item name="android:windowNoTitle">true</item>
</style>

<style name="AppThemeBar" parent="Theme.AppCompat.Light">
    <item name="android:windowNoTitle">false</item>
</style>

অ্যাপ্লিকেশন থিম হিসাবে অ্যাপটিমেমোবার সেট করুন এবং আপনি অ্যাকশনবারটি দেখতে চান এমন ক্রিয়াকলাপের জন্য অ্যাপপ্লেমবারকে সেট করুন two দুটি স্টাইল ব্যবহার করে আপনি দৃশ্যের লোড হওয়ার সময় অ্যাকশন বার দেখতে পাবেন না।

এই লিঙ্কটি অ্যান্ড্রয়েডটি দেখুন: দেখুন লোডের সময় অ্যাকশন বারটি লুকান


অবশেষে! আমার জন্য কাজ করেছেন। ধন্যবাদ। :)
ধোফকা

এটি অ্যাপকম্প্যাট সহ অ্যান্ড্রয়েড 2.3.3 এ কাজ করে না। অ্যাকশনবার দেখানো হয়েছে। যাইহোক, এটি কিটক্যাট উপর কাজ করে।
ইয়ার

17

হাই 2 টি থিম ব্যবহার করে আমার একটি সহজ সমাধান রয়েছে

  1. স্প্ল্যাশ স্ক্রিন থিম (এটি ম্যানিফেস্টে যুক্ত করুন):

    <style name="SplashTheme" parent="@android:style/Theme.Holo.NoActionBar"> <item name="android:windowBackground">@color/red</item> </style>

  2. সাধারণ থিম (সেটটিমে এটি আপনার ক্রিয়াকলাপে যুক্ত করুন (R.style.Theme)):

    <style name="Theme" parent="@style/Theme.Holo"> <item name="android:windowBackground">@color/blue</item> </style>

এসডিকে 10 সমর্থন করার জন্য:

@Override    
public void onCreate(Bundle savedInstanceState) {

    setTheme(R.style.Theme);      
    super.onCreate(savedInstanceState);

      ...........
      ...........
}

15

আমি অ্যান্ড্রয়েড ২.২ এ অ্যাকশন বারটিও আড়াল করার চেষ্টা করছিলাম, তবে এর সমাধানগুলির কোনওটিই কার্যকর হয়নি। ক্রাশ দিয়ে সবকিছু শেষ হয়। আমি ডিডিএমএস লগটি পরীক্ষা করেছিলাম, এটি আমাকে 'থিম.অ্যাপকম্প্যাট' ব্যবহার করতে বলছিল। শেষ অবধি আমি android:theme="@android:style/Theme.Holo.Light.NoActionBar"লাইনটি পরিবর্তন করে সমস্যার সমাধান করেছি

মধ্যে android:theme="@style/Theme.AppCompat.NoActionBar"এবং এটি কাজ করে, কিন্তু ইন্টারফেস অন্ধকার ছিল।

তারপরে আমি চেষ্টা করেছি android:theme="@style/Theme.AppCompat.Light.NoActionBar"এবং শেষ পর্যন্ত যা চেয়েছিলাম তা পেয়েছি।

এর পরে যখন আমি বিকাশকারী সাইটে 'অ্যাপকম্প্যাট' সম্পর্কে অনুসন্ধান করি তখন এটি পেয়েছিলাম।

সুতরাং আমি মনে করি অ্যান্ড্রয়েড ২.২ এর সলিউশনটি

<activity
    android:name=".MainActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

এবং দুঃখিত আমার খারাপ ইংরাজির জন্য সর্বদা পছন্দ করুন for


12

আমার কাছে সেরা ফলাফলটি ছিল থিমনোটাইটেলবার এবং লঞ্চার হিসাবে সামগ্রী ছাড়া কোনও ক্রিয়াকলাপ তৈরি করা। তারপরে এই ক্রিয়াকলাপটি অন্যকে সরাসরি কল করে।

অবশ্যই আপনি চাইলে আপনি স্প্ল্যাশ ক্রিয়াকলাপে সামগ্রী যুক্ত করতে পারেন তবে আমার ক্ষেত্রে আমি সরাসরি আবেদনটি প্রদর্শন করতে চেয়েছিলাম।

সুস্পষ্ট:

<activity
        android:name="com.package.SplashActivity"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

কার্যক্রম:

public class SplashActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    //start StartActivity
    Intent intent = new Intent(this, StartActivity.class);
    startActivity(intent);
    finish();
}

}


9

আপনি যদি Activityএকটি স্প্ল্যাশ স্ক্রিন অন্তর্ভুক্ত ব্যবহার করেন তবে আপনি যদি এটি ব্যবহার করেন তবে আপনি এটি করতে পারেনSherlockActionBar

getSupportActionBar().hide();

স্প্ল্যাশ স্ক্রিনের পরে আপনি এটি দিয়ে আবার দেখাতে পারবেন ...

getSupportActionBar().show();

দেশীয় ActionBarঅ্যান্ড্রয়েডের সাথে এটি একই হওয়া উচিত ।


6

@ ক্লারিকস সলিউশন কাজ করে। তবে এটি গুগলসের কিছু স্থানীয় অ্যাপ্লিকেশন: গুগলস, প্লে স্টোর, টক নিয়েও সমস্যা বলে মনে হচ্ছে। এছাড়াও স্কাইপের মতো অন্যান্য বড় অ্যাপ্লিকেশন।

সম্পাদনা : বেলো সলিউশন আমাকে এপিআই <4.0 এ অ্যাকশনবার্লক করার জন্য সমস্যা দিয়েছে, কারণ সেট হওয়ার কারণ তারা আইসক্রিমের প্রাক স্যান্ডউইচ কাজ করে না

আপনার অ্যাপ্লিকেশন বা ক্রিয়াকলাপের মধ্যে আপনার ম্যানিফেস্টে নিম্নলিখিতগুলি যুক্ত করুন:

android:theme="@style/Theme.NoActionBar"

এবং তারপরে আপনার মূল ক্রিয়াকলাপে:

    // Set theme
    setTheme(R.style.YOUR_THEME);
    getSupportActionBar().setTitle(R.string.title);

    // Start regular onCreate()
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


6

2015, অ্যাপকম্প্যাট থিম সহ সমর্থন ভি 7 লাইব্রেরি ব্যবহার করে আপনার ক্রিয়াকলাপের জন্য এই থিমটি সেট করুন।

<style name="AppTheme.AppStyled" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimaryDark">@color/md_indigo_100</item>
    <item name="colorPrimary">@color/md_indigo_500</item>
    <item name="colorAccent">@color/md_red_500</item>
    <item name="android:textColorPrimary">@color/md_white_1000</item>
    <item name="android:textColor">@color/md_purple_500</item>
    <item name="android:textStyle">bold</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

4

জন্য Splashscreenআপনি এই লাইন ব্যবহার করা উচিত manifestএবং ব্যবহার করবেন নাgetActionBar()

<item name="android:windowActionBar">false</item>

এবং একবার স্প্ল্যাশ নীচে বা কিছুই ব্যবহারের Activityপ্রধান Activityব্যবহার শেষ হলে

<item name="android:windowActionBar">true</item>

এটি আসলে কাজ করে যদি আপনি স্প্ল্যাশ পৃষ্ঠার জন্য আলাদা থিম ব্যবহার করেন তবে আপনার আবেদনের মূল পৃষ্ঠা। মূল ক্রিয়াকলাপ (আপনার স্প্ল্যাশ স্ক্রিন) এবং আপনার অ্যাপ্লিকেশনটির প্রথম ক্রিয়াকলাপের জন্য কেবল থ্রিম = "@ স্টাইল / মাইথিম" ব্যবহার করুন এবং থিমগুলি সরিয়ে নেওয়া স্প্ল্যাশ স্ক্রিন নয়।
থ্যাঙ্কস মিস্টার

1
এটি বর্তমান এপিআই স্তরে ত্রুটি দেয়: "অ্যাট্রিবিউটটি অ্যান্ড্রয়েড নেমস্পেস উপসর্গটি অনুপস্থিত।" <item android:name="android:windowActionBar">true</item>এই ত্রুটি থেকে মুক্তি পাওয়া যায় তবে এটি এখনও কার্যকর হয় কিনা তা আমি জানি না।
LarsH

3

এটি চেষ্টা করুন, এটি আমার পক্ষে কাজ করে:

নীচে ক্রিয়াকলাপের শিরোনাম বার থেকে মুক্তি পাওয়া যায়

 requestWindowFeature(Window.FEATURE_NO_TITLE);

ক্রিয়াকলাপটি পূর্ণ-স্ক্রিনে পরিণত করতে নীচে বিজ্ঞপ্তি বারটি সরিয়ে দেয়

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

(নীচে সম্পূর্ণ উদাহরণ) নোট করুন: আমাদের ক্রিয়াকলাপের সামগ্রী दृष्य সেট করার আগে এই পদ্ধতিগুলি বলা হয়েছিল called

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Sets Application to full screen by removing action bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);    
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_main); 

        // without this check, we would create a new fragment at each orientation change!
        if (null == savedInstanceState)
            createFragment();
    }

এটি কেন কাজ করে বা কেন এটি মনে করে যে এটি কাজ করা উচিত তা দয়া করে পরিষ্কার করুন। কেবল পেস্টিং কোড সম্পূর্ণ উত্তরের জন্য তৈরি করে না।
ক্রিস

@ ক্রিস, ওহ আমি কী বলতে চাইছি ধন্যবাদ!
ব্যবহারকারী 3862873

3

এটি
আপনার ম্যানিফেস্টে সহজেই যুক্ত হতে পারে

 android:theme="@android:style/Theme.Light.NoTitleBar" 

চিয়ার্স


এত পুরানো প্রশ্নে শীর্ষের উত্তরের মতো দুর্দান্ত কিছু কেন পোস্ট করবেন না?
gsamaras

'শীর্ষস্থানীয় উত্তর' আমাকে সাহায্য করতে পারে নি, তাই এই উত্তরটির সাথে নিজেকে খুঁজে পেয়ে এখানে পোস্ট করলাম posted
রাল্ফগ্যাব

2

সমস্ত উপলভ্য বিকল্পগুলি পড়ার পরে আমি যেভাবে খুঁজে পাই তার সেরা উপায়টি অ্যাকশনবার ছাড়াই মূল থিম সেট করা হয় এবং তারপরে সমস্ত ক্রিয়াকলাপের পিতামাতার কোডে মাই থিম সেট আপ করে।

সুস্পষ্ট:

<application
...
        android:theme="@android:style/Theme.Holo.Light.NoActionBar"
...>

BaseActivity:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.GreenHoloTheme);
}

অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে এই পদ্ধতিটি আমাকে অ্যাকশনবার এড়াতে সহায়তা করে!


1

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

একটি স্বচ্ছ অঙ্কনযোগ্য তৈরি করুন - এর মতো কিছু:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
       android:color="#00000000" />
</shape>

আপনি অ্যাকশনবারে যা সেট করেছেন তা অদৃশ্য কাস্টম ভিউতে আসল অ্যাকশনবারের ব্যাকগ্রাউন্ড সেট করুন:

getSupportActionBar().setCustomView(R.layout.actionbar_custom_layout);
      getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
              ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

অ্যানক্রিটটিতে অ্যাকশনবারের জন্য স্বচ্ছ পটভূমি সেট করুন:

getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.background_transparent));

অপরিহার্য: অ্যাকশনবারটি অবিলম্বে onCreate এ আড়াল করবেন না, তবে পরে কিছুটা বিলম্ব করে - উদাহরণস্বরূপ যখন তৈরির সাথে লেআউটটি শেষ হয়:

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    getSupportActionBar().hide();
                }
            });

আপনার প্রথম। শো () কলটি আগে কাস্টম ভিউটি দৃশ্যমান সেট করে:

_actionbarRoot.setVisibility(View.VISIBLE);
getSupportActionBar().show();

1

আপনার যদি শালীন হয় কারণ আপনি সমর্থন লাইব্রেরিটি ব্যবহার করছেন , তার পরিবর্তে getActionBar()আপনাকে কল করা দরকার getSupportActionBar()


1

অনক্রিট কার্যটিতে এটি কেবল আপনার মূল কার্যকলাপে যুক্ত করুন।

val actionBar = supportActionBar?.apply { hide() }

এটি অ্যান্ড্রয়েডএক্সে কাজ করে। এই সারিতে supportActionBar?.apply { hide() }
সেটকন্টেন্টভিউ

0

আপনার স্প্ল্যাশ স্ক্রিনটি একটি পৃথক ক্রিয়াকলাপে রাখুন এবং এটি প্রদর্শিত startActivityForResultআপনার মূল ক্রিয়াকলাপের onCreateপদ্ধতি থেকে ব্যবহার করুন । এটি কাজ করে কারণ ডক্স অনুসারে:

একটি বিশেষ কেস হিসাবে, আপনি যদি আপনার ক্রিয়াকলাপের প্রারম্ভিক অনক্রিট (বান্ডেল সেভড ইনস্ট্যান্সস্টেট) / অন রেসুম () এর সময় একটি অনুরোধ কোড> = 0 দিয়ে স্টার্টএটিভিটি ফর রিসাল্ট () কে কল করেন তবে আপনার ক্রিয়াকলাপটি শুরু হওয়া ক্রিয়াকলাপ থেকে ফিরে না আসা পর্যন্ত আপনার উইন্ডো প্রদর্শিত হবে না until । এটি অন্য ক্রিয়াকলাপে পুনর্নির্দেশের সময় দৃশ্যমান ঝলকানি এড়ানো is

আপনার সম্ভবত এটি তখনই করা উচিত যদি তর্কটি onCreateহয় null(কোনও কনফিগারেশনের পরিবর্তনের কারণে পুনরায় চালু করার বিপরীতে আপনার ক্রিয়াকলাপের নতুন প্রবর্তন নির্দেশ করে)।


এটা কাজ করে না. অনক্রিয়েট () শুরু করার সাথে সাথে অ্যাকশন বারটি ইতিমধ্যে দৃশ্যমান। এটি স্পষ্টভাবে ডিবাগে দেখা যায়।
ইলিয়া ইজভকিন

0

আমি এখনও নাল পয়েন্টারটিতে ত্রুটি করেছি এবং অবশেষে এটি সাহায্য করেছিল যখন আমি প্রথম getWindow () কে অনুরোধ করেছি request অনুরোধ ফিচার () এবং তারপরে সুপার.অনক্রিট ()

public void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
super.onCreate(savedInstanceState);
getActionBar().show();


0

আসলে, আপনি কেবল স্প্ল্যাশ স্থির করতে পারে Activityসঙ্গে NoActionBar এবং আপনার প্রধান সেট activityকর্ম বার সঙ্গে।


0

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

package com.superoriginal.rootashadnasim.syllabus;

import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class first_screen extends AppCompatActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first_screen);


    final Handler h=new Handler();
    h.postDelayed(new Runnable() {
        @Override
        public void run() {
            Intent intent=new     Intent(getApplicationContext(),DrawerChooseBranchMainActivity.class);
            startActivity(intent);
        }
    },2000);

}
}

এর পরে আপনি আপনার যে কোনও কার্যকলাপকে প্রথম ক্রিয়াকলাপ হিসাবে রাখতে পারেন যদি আপনি কোনও স্ক্রিনে কোনও অ্যাকশন বার না চান তবে কেবল এটি আপনার স্টাইলগুলিতে যুক্ত করুন

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>

0

অ্যান্ড্রয়েড স্টুডিওগুলি পূর্ণ স্ক্রিনের জন্য বিল্ড টেম্পলেট সরবরাহ করে, আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন তবে আপনি পূর্ণ স্ক্রিন ক্রিয়াকলাপ বাস্তবায়নের জন্য নীচের পদক্ষেপটি অনুসরণ করতে পারেন।

নতুন ক্রিয়াকলাপ তৈরি করার প্রথম পদক্ষেপ

পূর্ণ স্ক্রিন ক্রিয়াকলাপ নির্বাচন করুন

সম্পন্ন. অ্যান্ড্রয়েড স্টুডিও আপনার কাজ করেছে, এখন আপনি পূর্ণ স্ক্রিনের জন্য কোড পরীক্ষা করতে পারেন।


-1

এটি জাভা ফাইলে যান, এর পরে সবচেয়ে ভাল উপায় onCreate:

@Override
    protected void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 

        // Take instance of Action Bar 
        // using getSupportActionBar and 
        // if it is not Null 
        // then call hide function 
        if (getSupportActionBar() != null) { 
            getSupportActionBar().hide(); 
        } 
    }

-3

আমি বুঝতে পেরেছি যে পোস্টিং লিঙ্কগুলি জিনিসগুলি করার সর্বোত্তম উপায় নয়, তবে আমি আপনাকে গুগল থেকে নিম্নলিখিত ডকুমেন্টেশনগুলি নিজে পড়ার পরামর্শ দিচ্ছি। এটি আপনার সিস্টেম ইউআই (অ্যাকশনবারের মতো জিনিস, এনএভি বার ইত্যাদি) কীভাবে নিয়ন্ত্রণ করবেন সে সম্পর্কে এটি অফিশিয়াল অ্যান্ড্রয়েড ডক doc দুর্ভাগ্যক্রমে তথ্য সরাসরি পোস্ট করার জন্য খুব বেশি, তবে এটি পড়ার পরে আপনি ঠিক কীভাবে বৈশিষ্ট্যগুলি প্রদর্শন এবং আড়াল করবেন তা বুঝতে পারবেন আপনি যে সংস্করণটির জন্য বিকাশ করছেন, এটি এত সহজ!

লিঙ্কটি যে কোনও সময় পরিবর্তিত হয় তা প্রশিক্ষণের অধীনে অফিসিয়াল অ্যান্ড্রয়েড ডকুমেন্টেশনের অধীনে পাওয়া যায় -> শুরু করা -> ইউজার ইন্টারফেসের জন্য সেরা অনুশীলন -> সিস্টেম পরিচালনা

https://developer.android.com/training/system-ui/index.html

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


-4

আপনি এটি ব্যবহার করতে পারেন:

getSupportActionBar().hide(); যদি এটি কাজ না করে তবে এটি চেষ্টা করে দেখুন:

getActionBar().hide();

যদি উপরে কাজ না করে তবে চেষ্টা করুন:

আপনার ডিরেক্টরিতে = res / মান / শৈলী.এক্সএমএল, ওপেন শৈলী.এক্সএমএল -> তে বৈশিষ্ট্য parentপরিবর্তন রয়েছেparent="Theme.AppCompat.Light.DarkActionBar"

যদি এটি সব কাজ করে না। আমি আর জানি না। তবে আমার জন্য এটি কাজ করে।


getSupportActionBar () লুকান ()। সর্বাধিক ভোট দেওয়া উত্তরে উল্লেখ করা হয়েছিল, getActionBar ()। আড়াল (); প্রশ্নে উল্লেখ করা হয়েছিল, এবং ডার্ক অ্যাকশনবারে পুত্র ন্যুগেইন থানহ এর উত্তরে উল্লেখ করা হয়েছিল। এছাড়াও এই প্রশ্নটি 4 বছরের পুরানো এবং এরই মধ্যে বেশ কয়েকটি উচ্চ ভোটের উত্তর রয়েছে।
আগস্ট 4'15
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.