অ্যান্ড্রয়েডে স্ট্যাটাস বার কীভাবে আড়াল করবেন


103

আমি এই লিঙ্ক উল্লেখ । এর মধ্যে যদি ব্যবহারকারী সেই সময়ে সম্পাদনা পাঠ্য তে ক্লিক করে (প্রাক্তন টো:) কীবোর্ড পপআপ হয়ে যায় এবং একই সাথে ব্যবহারকারী তার মধ্যে থাকা সমস্ত দর্শন (যেমন: রচনা, বিষয়, প্রেরণ বোতাম) দেখতে স্ক্রোল করতে সক্ষম হতে পারে যে পর্দা। একইভাবে আমার অ্যাপ্লিকেশনটিতে আমার একটি ক্রিয়াকলাপ রয়েছে যাতে আমার কিছু উইজেট বা ভিউ হয়। মনে করুন, ব্যবহারকারী যদি আমার ক্রিয়াকলাপে থাকা এডিটেক্সট-এ ক্লিক করে থাকে তবে কীবোর্ড পপআপ হয়ে যাচ্ছে এবং আমি অবশিষ্ট ভিউগুলি দেখতে স্ক্রোল করতে সক্ষম হতে পারি। তবে আমি যদি এই বৈশিষ্ট্যটি android:theme="@android:style/Theme.NoTitleBar.Fullscreen"ম্যানিফেস্টে দিয়ে থাকি তবে আমি অবশিষ্ট ভিউগুলি দেখতে স্ক্রোল করতে পারিনি তবে যদি অ্যাট্রিবিউট দেয়android:theme="@android:style/Theme.NoTitleBar"ম্যানিফেস্টে এটির মতো আমি বাকী দেখুনটি দেখতে স্ক্রোল করতে সক্ষম হতে পারি তবে সেই স্ক্রিনে স্থিতি দণ্ড রয়েছে, আমি এখানে পূর্ণ পর্দা চাই এবং কী-বোর্ডটি পপ-আপ করা হয়ে গেলেও আমি বাকী দৃশ্যগুলি দেখতে স্ক্রোল করতে পারি ..? এর জন্য আমাকে কী পরিবর্তন করতে হবে ..?


3
@ ব্যবহারকারী 448250: নোট করুন যে আপনি অ্যান্ড্রয়েড 3.0.০ এ স্ট্যাটাস বারটি আড়াল করতে পারবেন না, এবং এমন একটি শালীন সুযোগ রয়েছে যে আপনি স্ট্যাটাস বারটি সামনের দিকে এগিয়ে যেতে পারবেন না। অ্যান্ড্রয়েড 3.0.০-তে, স্ট্যাটাস বারটিতে ব্যাক এবং হোম বোতাম রয়েছে, তাই স্ট্যাটাস বারটি সর্বদা উপলব্ধ থাকা দরকার।
কমন্সওয়্যার

আমি সবেমাত্র 3.0, এপিআই স্তর 11 দিয়ে এমুলেটরটিতে শিরোনাম এবং স্ট্যাটাস বার উভয়ই আড়াল করতে সক্ষম
হয়েছি

পূর্ণ পর্দার তবুও অনুমতি দেওয়া উচিত, ব্যবহারকারী সাধারণত পূর্ণ স্ক্রিন গেম খেলার সময় স্থিতি দণ্ড দেখতে চান না।
GMsoF

@ user448250 আপনি কি কখনও এটি খুঁজে পেয়েছেন?
টিয়াগো

কার্যকলাপ কি আদৌ? এটি আপনার ওয়েবসাইট ফোল্ডারে কিছু এক্সএমএল ফাইল?
নিউবুলার ডাস্ট

উত্তর:


170

আপনার ক্রিয়াকলাপ এ এটি লিখুন

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

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

এখানে ডক পরীক্ষা করুন: https://developer.android.com/training/system-ui/status.html

এবং আপনার অ্যাপ্লিকেশন পূর্ণ স্ক্রিনে যাবে। কোনও স্ট্যাটাস বার নেই, কোনও শিরোনাম বার নেই। :)


29
মনে রাখবেন যে আপনার ক্রিয়াকলাপ সুপারক্লাস যদি অনক্রিট পদ্ধতিতে সেটকন্টেন্টভিউকে কল করে তবে এটি কাজ করবে না - অ্যাপ্লিকেশনটি ব্যতিক্রম ছাড়বে।
বেন ক্লেটন 10

1
@ রন আইআইপি লেভেল ৮ পরীক্ষা করে যাচ্ছিলেন? অন্য স্তরের ক্ষেত্রেও আচরণটি আলাদা হতে পারে?
বেন ক্লেটন

এটি কি 2.3.x থেকে 4.x পর্যন্ত সমস্ত সংস্করণের জন্য বৈধ?
কোস্তাদিন

1
এটি এখনও সফ্টওয়্যার কীবোর্ড প্রদর্শিত হচ্ছে যখন স্ক্রোল থেকে স্ক্রোলিং প্রতিরোধ করে।
টিয়াগো

2
super.onCreate(savedInstanceState);ক্রাশ হওয়ার আগে এটি ব্যবহার করুন
ডেভিড

19
 if (Build.VERSION.SDK_INT < 16) {
   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
 } else {
     View decorView = getWindow().getDecorView();
      int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
      decorView.setSystemUiVisibility(uiOptions);
      ActionBar actionBar = getActionBar();
      actionBar.hide();
 }

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

19

থিমটি ব্যবহার করুন "Theme.NoTitleBar.Fullscreen"এবং "android:windowSoftInputMode=adjustResize"ক্রিয়াকলাপের জন্য সেটিংস চেষ্টা করে AndroidManifest.xml.দেখুন এখানে আপনি বিশদটি পেতে পারেন ।


উপরের পদ্ধতির সাথে, অ্যাপ্লিকেশনটি পূর্ণ স্ক্রিন চলাকালীন আমার স্ট্যাটাস বারটি আড়াল হতে পারে তবে যাইহোক, পৃষ্ঠাটি স্যুইপ করার সময় আমি স্থিতি বারটি দেখতে পাচ্ছি। আমি স্ট্যাটাস বারটি আদৌ না চাইলে কি কোনও উপায় আছে?
হ্যাজেল ওয়াং

13

আপনার অ্যাপ্লিকেশনটিতে স্থিতি বারটি আড়াল করার জন্য এবং সহজেই ব্যবহারযোগ্য এই কোডটি ব্যবহার করুন

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

12

আপনার যদি একটি ক্রিয়াকলাপে এটির প্রয়োজন হয় তবে আপনাকে সেটক্রিট ভিউয়ের আগে অনক্রিট তৈরি করতে হবে:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.your_screen);

1
এই উপায়ে কীবোর্ডটি ওয়েবভিউতে ইনপুট ক্ষেত্রকে কভার করে।
অ্যালেন ভর্ক

@ অ্যালেন ওয়ার্কের কোন সমাধান?
ইশান কুমার

12

এটি আপনার ক্রিয়াকলাপ শ্রেণিতে যুক্ত করুন

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    // some your code
}

8

আপনার জন্য এটি ব্যবহার করুন Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

6
void hideStatusBar() {
        if (Build.VERSION.SDK_INT < 16) {
           getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        } else {
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);
        }
    }

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


6

manifest.xmlফাইলটিতে অ্যাপ্লিকেশন থিম পরিবর্তন করুন।

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

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

6

যদি আপনি স্থিতি বারটি আড়াল করে থাকেন তবে এটি অনক্রিটে (ক্রিয়াকলাপের জন্য) এবং অনক্রিটভিউ / অনভিউ তৈরির জন্য করুন (খণ্ডের জন্য)

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

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

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)

5

এই কোডটি ব্যবহার করুন:

requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.youractivityxmlname);

4

এই কোডটি স্ট্যাটাস বারটি আড়াল করে।

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

অ্যাকশন বারটি লুকানোর জন্য এই লাইনটি লিখুন: -

requestWindowFeature(Window.FEATURE_NO_TITLE);

অ্যাকশন বার এবং স্ট্যাটাস বারটি গোপন করতে উভয় লাইনই সম্মিলিতভাবে লেখা যেতে পারে। setContentViewপদ্ধতিতে কল করার আগে এই সমস্ত লাইন অবশ্যই লিখতে হবে onCreate


সুন্দর কাজ করে। ধন্যবাদ!
জোশুয়া পিন্টার

3

অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল -> আপনি যে ক্রিয়াকলাপটি ব্যবহার করতে চান তার ভিতরে, নিম্নলিখিতটি যুক্ত করুন:

android:theme="@style/Theme.AppCompat.Light.NoActionBar"
//this is for hiding action bar

এবং MainActivity.java -> onCreate () পদ্ধতির ভিতরে, নিম্নলিখিতটি যুক্ত করুন:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//this is for hiding status bar

3

আপনি স্টাইল.এক্সএমএল ব্যবহার করে আড়াল করতে পারেন

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="HiddenTitleTheme" parent="AppTheme">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

শুধু আপনার প্রকাশ হিসাবে এটি কল android:theme="@style/HiddenTitleTheme"


2

আপনি এক্সএমএল ব্যবহার করে রঙের রঙের রূপান্তর করে স্থিতি বারটি আড়াল করতে পারেন । আপনার ক্রিয়াকলাপের থিমটিতে স্ট্যাটাস বারকলার আইটেম যুক্ত করুন :

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

দয়া করে কিছু ব্যাখ্যা কোড যুক্ত করুন উত্তরগুলি অন্যদের কাছে কিছুটা বিভ্রান্তিকর
রাম গাদিয়ারাম

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

    setTheme(R.style.Theme_AppCompat_Light_NoActionBar);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

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

    setContentView(R.layout.activity__splash_screen);
}

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

অ্যাপকম্প্যাটটি ঠিক কীভাবে ব্যবহার করা হচ্ছে তা সম্পর্কে আমার খুব বেশি ধারণা ছিল না। এবং এই তিন লাইন কাজ করে।
ব্যবহারকারী3156040

দুঃখের বিষয় হ'ল গুগলের নিজস্ব ডকুমেন্টেশন, বরাবরের মতো, কীভাবে এটি অর্জন করা যায় তা ভুল। হতে পারে তাদের এই কোডটি পেস্ট করা উচিত।
জিশান

1

এটি অ্যান্ড্রয়েড 4.0.০ এবং নিম্নে এবং অ্যানড্রয়েড ৪.১ এবং তার চেয়ে বেশি এর স্ট্যাটাস বারটি আড়াল করার বিষয়ে অফিশিয়াল ডকুমেন্টেশন

দয়া করে এটি একবার দেখুন:

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


0

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

সমাধানটি বেশ বড়, সুতরাং এখানে এসওয়ের লিঙ্কটি রয়েছে:

স্ট্যাকওভারফ্লো: অ্যান্ড্রয়েড 4.4+ এ স্ট্যাটাস বারটি বা সম্পূর্ণস্ক্রিন সহ কিটকাট লুকান


আমার মনে হয় আপনি ভুল, দয়া করে স্ট্যাটাস বার গোপন সম্পর্কে সরকারী তথ্য কটাক্ষপাত করা developer.android.com/training/system-ui/status.html
জোসে রিকার্ডো Citerio Alcala

জোস, আমি প্রদত্ত লিঙ্কের তথ্যগুলি পরীক্ষা করব এবং প্রয়োজনে উত্তরটি আপডেট করব update এই পরিস্থিতিটির কোনও সরকারী সমাধান না পাওয়াতে এই প্রশ্ন / উত্তর এক বছর আগে যুক্ত হয়েছিল। পরবর্তী প্রকাশে বা সংস্করণগুলিতে গুগল / অ্যান্ড্রয়েড এর জন্য এপিআই / পদ্ধতি যুক্ত করেছে। যদি তারা সমাধানটি সরবরাহ করে থাকে তবে এটি একটি পরিতোষ। ধন্যবাদ!
জ্যো দ্য হিফ

0

এই সমাধানটি আমার জন্য কাজ :)

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= 19) {
           getWindow().setFlags(AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT, AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT);
           getWindow().getDecorView().setSystemUiVisibility(3328);
    }else{
           requestWindowFeature(Window.FEATURE_NO_TITLE);
           this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

    DataBindingUtil.setContentView(this, R.layout.activity_hse_video_details);

0
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // If the Android version is lower than Jellybean, use this call to hide
    // the status bar.
    if (Build.VERSION.SDK_INT < 16) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    } else {
       View decorView = getWindow().getDecorView();
       // Hide the status bar.
       int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
       decorView.setSystemUiVisibility(uiOptions);
       // Remember that you should never show the action bar if the
       // status bar is hidden, so hide that too if necessary.
       ActionBar actionBar = getActionBar();
       actionBar.hide();
    }

    setContentView(R.layout.activity_main);

}
...
}

0

ব্যবহৃত Manifest

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

সম্ভবত থিম উপর নির্ভর করে। আমার ক্ষেত্রে একটি ব্যতিক্রম ঘটেছে: "java.lang.IllegalStateException: আপনার এই ক্রিয়াকলাপের সাথে একটি থিম.অ্যাপকম্প্যাট থিম (বা বংশধর) ব্যবহার করা দরকার" "
কুলমাইন্ড

0

পুনরায় -> মান -> শৈলী.এক্সএমএল এর অধীনে

ইনসাইড শৈলী শরীর ট্যাগ পেস্ট

<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>

0

যদি আপনি গুগল ডকুমেন্টগুলি উল্লেখ করেন তবে আপনি এই পদ্ধতিটি অ্যান্ড্রয়েড ৪.১ এবং তারপরের জন্য ব্যবহার করতে পারেন, সেটকন্টেন্ট ভিউ () এর আগে এই পদ্ধতিটি কল করুন

public void hideStatusBar() {
    View view = getWindow().getDecorView();
    int uiOption = View.SYSTEM_UI_FLAG_FULLSCREEN;
    view.setSystemUiVisibility(uiOption);
    ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
}

-1
requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

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