অ্যান্ড্রয়েডে ফুলস্ক্রিন কার্যকলাপ?


605

আমি কীভাবে কোনও ক্রিয়াকলাপ পূর্ণ পর্দা করব? মানে নোটিফিকেশন বার ছাড়াই। কোন ধারনা?

উত্তর:


1050

আপনি এটি অগ্রগতিতে করতে পারেন:

public class ActivityName extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // remove title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }
}

অথবা আপনি এটি আপনার AndroidManifest.xmlফাইলের মাধ্যমে করতে পারেন :

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>

সম্পাদনা:

আপনি যদি AppCompatActivity ব্যবহার করছেন তবে আপনাকে নতুন থিম যুক্ত করতে হবে to

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

এবং তারপরে এটি ব্যবহার করুন।

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>

ধন্যবাদ https://stackoverflow.com/a/25365193/1646479


65
জাস্ট অ্যান্ড্রয়েড: থিম = "@ অ্যান্ড্রয়েড: শৈলী / থিম.নোটাইটেলবার। ফুলস্ক্রিন" ম্যানিফেস্টে আপনার ক্রিয়াকলাপের জন্য গুণাবলী যথেষ্ট। ধন্যবাদ :)
প্রবীণ

19
যদি আপনার অ্যাপ্লিকেশনটি অন্য কোনও থিম ব্যবহার করে তবে থিমের সাথে সম্পর্কিত নাম যেমন হোয়াইট থিম @android:style/Theme.Holo.Light.NoActionBar.Fullscreen
ankitjaininfo

5
ম্যানিফেস্টে থিম সেট করা প্রবর্তনের সময় একটি কালো পর্দার কারণ হয়ে থাকে, কোডে এটি করা ভাল।
aurelien_lepage

4
আপনি যদি অ্যাকশনবার ব্যবহার করে থাকেন এবং কেবল কোনও শিরোনামবার চান না `অনুরোধ উইন্ডো ফিচার () 'লাইনটি সরিয়ে ফেলুন কারণ এটি নালপয়েন্টার সৃষ্টি করবে অন্যথায়
এক্স.এক্স_মাস_ডাফলক

3
আপনি যদি ব্যবহার করছেন তবে আপনার আগে AppCompatActivityরাখা দরকার । অন্যথায়, আপনি পাবেন:requestWindowFeaturesuper.onCreateandroid.util.AndroidRuntimeException: requestFeature() must be called before adding content
স্লাভ

128

একটা কৌশল নামক ইমারসিভ ফুল স্ক্রীণ মোড উপলব্ধ কিটক্যাটনিমজ্জনিত পূর্ণ-স্ক্রিন মোড ডেমো

উদাহরণ


5
কেবল মনে রাখবেন যে আপনার অ্যাপ্লিকেশন নিমজ্জন মোডে প্রথমবার প্রবেশ করার পরে একটি "অনুস্মারক বুদবুদ" প্রদর্শিত হবে। এটি কিছু ক্রিয়াকলাপের জন্য সূক্ষ্ম, তবে উদাহরণস্বরূপ আপনি স্প্ল্যাশ স্ক্রিন করছেন না।
LarsH

স্পিনারদের ব্যবহার করার সময় বিরতি
viVekH

শুধুমাত্র নীচের নেভিগেশন বারটি স্ট্যাটাস বারটি নয়, আড়াল করতে চান। এটা কি সম্ভব?
পিভিডিএভ

76

আপনি যদি থিমটি ব্যবহার করতে না চান @android:style/Theme.NoTitleBar.Fullscreenকারণ আপনি ইতিমধ্যে নিজের একটি থিম ব্যবহার করছেন, আপনি ব্যবহার করতে পারেন android:windowFullscreen

অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল:

<activity
  android:name=".ui.activity.MyActivity"
  android:theme="@style/MyTheme">
</activity>

শৈলীতে। এক্সএমএল:

<style name="MyTheme"  parent="your parent theme">
  <item name="android:windowNoTitle">true</item>
  <item name="android:windowFullscreen">true</item> 
</style>

আপনার পিতামাতাকে আপনার মূল থিম হিসাবে যুক্ত করুন
সৌরভ ভান্ডারী

আপনি জায়গা <আইটেমের নাম = "windowActionBar"> মিথ্যা </ আইটেমটি> খুব প্রয়োজন
htafoya

52

ইন Andro আইডি ফাইল:

<activity
    android:name=".Launch"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > <!-- This line is important -->

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>  

বা জাভা কোডে:

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

2
JAVA এ প্রোগ্রামটিমেটিকভাবে সেই কাজটি করার জন্য আপনার অবশ্যই একটি কোড যুক্ত করতে হবে
ড। এএনড্রো

2
requestWindowFeature (Window.FEATURE_NO_TITLE); getWindow ()। setFlags (উইন্ডো ম্যানেজ। লেআউটপ্যারামস.এফএলএজি_ফুলসস্ক্রিন, উইন্ডো ম্যানেজ। লেআউটপ্যারামস.ফ্ল্যাগ_ফুলসস্ক্রেন);
iNFInite PosSibiLitiEs

শুধুমাত্র নীচের নেভিগেশন বারটি স্ট্যাটাস বারটি নয়, আড়াল করতে চান। এটা কি সম্ভব?
পিভিডিএভ

32

যদি আপনি অ্যাপকম্প্যাট এবং অ্যাকশনবার্যাক্টিভিটি ব্যবহার করে থাকেন তবে এটি ব্যবহার করুন

getSupportActionBar().hide();


এটি শীর্ষের স্ট্যাটাস বারটি সরিয়ে ফেলবে না
মনোহর রেড্ডি

24

সতর্কতার সহিত

requestWindowFeature(Window.FEATURE_NO_TITLE);

আপনি যদি অ্যাকশন বারটিকে নিম্নলিখিত হিসাবে সেট করতে কোনও পদ্ধতি ব্যবহার করে থাকেন:

getSupportActionBar().setHomeButtonEnabled(true);

এটি নাল পয়েন্টার ব্যতিক্রম ঘটায়।


কারণ আপনি অ্যাকশন বারটি সামঞ্জস্য করছেন, যা পুনরায় আকারের কোডটি লুকানোর চেষ্টা করছে!
অ্যান্ডি

22

এ থেকে অ্যাপকম্প্যাট দিয়ে এটি ব্যবহার করে দেখুন style.xml। এটি সমস্ত প্ল্যাটফর্মের জন্য সমর্থন সরবরাহ করে।

<!-- Application theme. -->
<style name="AppTheme.FullScreen" parent="AppTheme">
    <item name="android:windowFullscreen">true</item>
</style>


<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" />

সুন্দর এবং সহজ সমাধান। নবাবিদের জন্য, এই থিমটি ক্রিয়াকলাপ বা অ্যাপ্লিকেশন ট্যাগে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল যুক্ত করুন: অ্যান্ড্রয়েড: থিম = "@ শৈলী / অ্যাপ থিম.ফুলস্ক্রিন"
লিওস লিটারাক ২

1
শুধুমাত্র নীচের নেভিগেশন বারটি স্ট্যাটাস বারটি নয়, আড়াল করতে চান। এটা কি সম্ভব?
পিভিডিএভ

13

অ্যান্ড্রয়েড স্টুডিও ব্যবহার করা (বর্তমান সংস্করণটি এই মুহুর্তে ২.২.২) একটি পূর্ণস্ক্রিন ক্রিয়াকলাপ যুক্ত করা খুব সহজ।

পদক্ষেপ দেখুন:

  1. আপনার জাভা মূল প্যাকেজটিতে ডান ক্লিক করুন> "নতুন" নির্বাচন করুন> "ক্রিয়াকলাপ" নির্বাচন করুন> তারপরে, "ফুলস্ক্রিন ক্রিয়াকলাপ" এ ক্লিক করুন।

প্রথম ধাপ

  1. ক্রিয়াকলাপটি ("ক্রিয়াকলাপের নাম", "লেআউট নাম" এবং এই জাতীয়) কাস্টমাইজ করুন এবং "সমাপ্তি" ক্লিক করুন।

ধাপ দুই

সম্পন্ন!

এখন আপনার সহজেই একটি পূর্ণস্ক্রিন ক্রিয়াকলাপ রয়েছে (জিনিসগুলি কীভাবে কাজ করে তা জানতে জাভা বর্গ এবং ক্রিয়াকলাপের বিন্যাস দেখুন)!


8

যারা অ্যাপকম্প্যাক্ট ব্যবহার করে ... স্টাইল.এক্সএমএল

 <style name="Xlogo" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
</style>

তারপরে নামটি আপনার ম্যানিফেস্টে রাখুন ...


7

প্রথমে আপনাকে নীচের মতো "NoActionBar" দিয়ে অ্যাপ থিম সেট করতে হবে

<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" />

তারপরে আপনার পূর্ণস্ক্রিন ক্রিয়াকলাপে এই লাইনগুলি যুক্ত করুন।

public class MainActiviy extends AppCompatActivity {
    @Override
    public 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.main);
    }
}

এটি আপনার পূর্ণস্ক্রিন ক্রিয়াকলাপে অ্যাকশনবার / সরঞ্জামদণ্ড এবং স্থিতিবারকেও আড়াল করবে


7

Andro আইডি

<activity ...
          android:theme="@style/FullScreenTheme"
    >
</activity>

I. আপনার মূল অ্যাপ্লিকেশন থিমটি থিম.অ্যাপকম্প্যাট.লাইট.ডর্ক অ্যাকশনবার

অ্যাকশনবার / স্ট্যাটাসবার স্টাইল.এক্সএমএল লুকানোর জন্য

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...
</style>

<style name="FullScreenTheme" parent="AppTheme">
    <!--this property will help hide the ActionBar-->
    <item name="windowNoTitle">true</item>
    <!--currently, I don't know why we need this property since use windowNoTitle only already help hide actionbar. I use it because it is used inside Theme.AppCompat.Light.NoActionBar (you can check Theme.AppCompat.Light.NoActionBar code). I think there are some missing case that I don't know-->
    <item name="windowActionBar">false</item>
    <!--this property is used for hiding StatusBar-->
    <item name="android:windowFullscreen">true</item>
</style>

সিস্টেম নেভিগেশন বারটি আড়াল করতে

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        setContentView(R.layout.activity_main)
        ...
    }
 }

২। আপনার মূল অ্যাপ্লিকেশন থিমটি থিম.অ্যাপকম্প্যাট.লাইট.নো অ্যাকশনবার

অ্যাকশনবার / স্ট্যাটাসবারকে আড়াল করার জন্য
স্টাইল.এক্সএমএল

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
</style>

<style name="FullScreenTheme" parent="AppTheme">
    <!--don't need any config for hide ActionBar because our apptheme is NoActionBar-->
    <!--this property is use for hide StatusBar-->
    <item name="android:windowFullscreen">true</item> // 
</style>

সিস্টেম নেভিগেশন বারটি আড়াল করতে

অনুরূপ মত Theme.AppCompat.Light.DarkActionBar

ডেমো


ধন্যবাদ। অ্যান্ড্রয়েড 5.0.1 এ পরীক্ষিত।
কুলমাইন্ড

@ কুলমাইন্ড আবার দেখা হবে। আপনার সম্পাদনার জন্য আপনাকে ধন্যবাদ
ফান ভ্যান লিনহ

6

উত্তরের জন্য ধন্যবাদ ক্রিশ্চিয়ান আমি ত্রুটি পাচ্ছিলাম

android.util.AndroidRuntimeException: কন্টেন্ট যুক্ত করার পূর্বে অবশ্যই অনুরোধ ফিচার () কল করতে হবে

আমি এটি ব্যবহার করে সমাধান করেছি

@Override
protected void onCreate(Bundle savedInstanceState) {

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    super.onCreate(savedInstanceState);

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

    setContentView(R.layout.activity_login);

    -----
    -----
}

আমাদের requestWindowFeature(Window.FEATURE_NO_TITLE);আগে সেট করা উচিত super.onCreate(savedInstanceState);?
কুলমাইন্ড

4

সম্পূর্ণ নিমজ্জন প্রদর্শন:

private void askForFullScreen()
    {
        getActivity().getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                        | View.SYSTEM_UI_FLAG_IMMERSIVE);
    }

সম্পূর্ণ নিমজ্জন মোড থেকে সরে যান:

 private void moveOutOfFullScreen() {
        getActivity().getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    }

3

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

অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল:

<activity
    android:name=".ui.activity.MyActivity"
    android:theme="@style/MyTheme">
</activity>

শৈলীতে। এক্সএমএল:

<style name="MyTheme">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
</style>

দ্রষ্টব্য: আমার ক্ষেত্রে এটি সঠিকভাবে কাজ করার আগে আমাকে তার name="windowActionBar"পরিবর্তে ব্যবহার name="android:windowActionBar"করতে হয়েছিল। সুতরাং আমি পরে একটি নতুন অ্যান্ড্রয়েড সংস্করণে পোর্ট করতে হবে সেই ক্ষেত্রে এটি নিশ্চিত করতে আমি উভয়ই ব্যবহার করেছি।


3

এখানে একটি উদাহরণ কোড। আপনি নির্দিষ্ট অংশগুলি লুকিয়ে / দেখানোর জন্য পতাকাগুলি চালু / বন্ধ করতে পারেন।

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

public static void hideSystemUI(Activity activity) {
    View decorView = activity.getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    //| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    //| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

তারপরে, আপনি ডিফল্ট অবস্থায় পুনরায় সেট করুন :

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

public static void showSystemUI(Activity activity) {
    View decorView = activity.getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

আপনি উপরের ফাংশনগুলি কল করতে পারেন আপনার থেকে onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.course_activity);
    UiUtils.hideSystemUI(this);
}

3

KOTLIN

গুগল ডক অনুসরণ করে, একটি সহজ উপায় আছে:

override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) hideSystemUI() }


private fun hideSystemUI() {
// Enables regular immersive mode.
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
        // Set the content to appear under the system bars so that the
        // content doesn't resize when the system bars hide and show.
        or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        // Hide the nav bar and status bar
        or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        or View.SYSTEM_UI_FLAG_FULLSCREEN)      }


// Shows the system bars by removing all the flags
// except for the ones that make the content appear under the system bars.
private fun showSystemUI() {
window.decorView.systemUiVisibility = 
(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)       }

Google ডক্স


2

টিপ: getWindow () ব্যবহার করুন সেটলয়েট () আপনার পূর্ণ স্ক্রিনের প্রদর্শন স্ক্রু আপ করতে পারে! এই পদ্ধতির ডকুমেন্টেশন নোট করুন বলেছেন:

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

http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29

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

       public static void setSize( final int width, final int height ){
//DO SOME OTHER STUFF...
            instance_.getWindow().setLayout( width, height );
            // Prevent status bar re-appearance
            Handler delay = new Handler();
            delay.postDelayed( new Runnable(){ public void run() {
                instance_.getWindow().setLayout(
                    WindowManager.LayoutParams.FILL_PARENT,
                    WindowManager.LayoutParams.FILL_PARENT );
            }}, FILL_PARENT_ON_RESIZE_DELAY_MILLIS );
        }

এরপরে উইন্ডোটি সঠিকভাবে পুনরায় মাপ দেবে এবং পরিস্থিতি বারটি পুনরায় প্রদর্শিত হবে না যা ঘটনাকে কেন্দ্র করে এটিকে ট্রিগার করে।


2
 @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    adjustFullScreen(newConfig);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        adjustFullScreen(getResources().getConfiguration());
    }
}
private void adjustFullScreen(Configuration config) {
    final View decorView = getWindow().getDecorView();
    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    } else {
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    }
}

2

স্টাইল.এক্সএমএল এর ভিতরে ...

<!-- No action bar -->
<style name="NoActonBar" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Theme customization. -->
    <item name="colorPrimary">#000</item>
    <item name="colorPrimaryDark">#444</item>
    <item name="colorAccent">#999</item>
    <item name="android:windowFullscreen">true</item>
</style>

এটি আমার পক্ষে কাজ করেছে। আশা করি এটি আপনাকে সহায়তা করবে।


2

কোটলিন দিয়ে আমি এইভাবেই করেছি:

class LoginActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)
        window.decorView.systemUiVisibility =
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
                View.SYSTEM_UI_FLAG_FULLSCREEN

    }
}

নিমজ্জন মোড

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

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

চটচটে নিমজ্জন

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

View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

আরও তথ্যের জন্য: পূর্ণস্ক্রিন মোড সক্ষম করুন

আপনার কীবোর্ডটি ব্যবহার করার ক্ষেত্রে, কখনও কখনও ঘটে যায় যা কীবোর্ড প্রদর্শিত হওয়ার পরে স্থিতিবার প্রদর্শিত হয়। সেক্ষেত্রে আমি সাধারণত আমার স্টাইলের এক্সএমএল এ যুক্ত করি

styles.xml

<style name="FullScreen" parent="AppTheme">
    <item name="android:windowFullscreen">true</item>
</style>

এবং আমার প্রকাশ্য এই লাইন

<activity
        android:name=".ui.login.LoginActivity"
        android:label="@string/title_activity_login"
        android:theme="@style/FullScreen">

ধন্যবাদ। প্রয়োজন এপিআই 16 এবং 19
CoolMind

2

এই কোডটি কেবল onCreate()পদ্ধতিতে আটকান

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

1

এটা আমার জন্য কাজ করেছে।

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);
    }

1
অন্যথায় নিম্নলিখিতগুলি ব্যবহার করা আরও ভাল;
প্রোটনফ্লাক্স

1
 protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_splash_screen);
    getSupportActionBar().hide();

}

1

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

    <style name="FullscreenTheme" parent="AppTheme">
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

এটি আমার প্রকাশিত ফাইল

<activity
        android:name=".Splash"
        android:screenOrientation="landscape"
        android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize"
        android:label="@string/app_name"
        android:theme="@style/SplashTheme">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize"
        android:screenOrientation="landscape"
        android:label="@string/app_name"
        android:theme="@style/FullscreenTheme">
    </activity>

এটি আমার স্প্ল্যাশ ক্রিয়াকলাপ

public class Splash extends Activity {
/** Duration of wait **/
private final int SPLASH_DISPLAY_LENGTH = 2000;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.splash_creen);

    /* New Handler to start the Menu-Activity
     * and close this Splash-Screen after some seconds.*/
    new Handler().postDelayed(new Runnable(){
        @Override
        public void run() {
            /* Create an Intent that will start the Menu-Activity. */
            Intent mainIntent = new Intent(Splash.this,MainActivity.class);
            Splash.this.startActivity(mainIntent);
            Splash.this.finish();
        }
    }, SPLASH_DISPLAY_LENGTH);
}

}

এবং এটি আমার মূল পূর্ণ স্ক্রিন ক্রিয়াকলাপ। onSystemUiVisibilityChange এই পদ্ধতিটি গুরুত্বপূর্ণ ত্যাগ করা অন্যথায় অ্যান্ড্রয়েডের প্রধান নেভিগেশন বারের পরে কল করার পরে থাকবে এবং অদৃশ্য হবে না। সত্যিই বিরক্তিকর সমস্যা, তবে এই ফাংশনটি সমস্যার সমাধান করে।

পাবলিক ক্লাস মেইনএকটিভিটি অ্যাপকম্প্যাটএটিভিটি প্রসারিত করে {

private View mContentView;
@Override
public void onResume(){
    super.onResume();

    mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

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

    setContentView(R.layout.fullscreen2);
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null)
    {
        actionBar.hide();
    }
    mContentView = findViewById(R.id.fullscreen_content_text);
    mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);



    View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener
            (new View.OnSystemUiVisibilityChangeListener()
            {
                @Override
                public void onSystemUiVisibilityChange(int visibility)
                {
                    System.out.println("print");

                    if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)
                    {
                        mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                                | View.SYSTEM_UI_FLAG_FULLSCREEN
                                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
                    }
                    else
                    {

                        mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

                        }
                }
            });

}

}

এটি আমার স্প্ল্যাশ স্ক্রিন লেআউট:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView android:id="@+id/splashscreen" android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:background="@android:color/white"
        android:src="@drawable/splash"
        android:layout_gravity="center"/>
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hello World, splash"/>
</LinearLayout>

This is my fullscreen layout
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#0099cc"
        >
        <TextView
            android:id="@+id/fullscreen_content_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:keepScreenOn="true"
            android:text="@string/dummy_content2"
            android:textColor="#33b5e5"
            android:textSize="50sp"
            android:textStyle="bold" />

    </FrameLayout>

আমি আশা করি এটা তোমাকে সাহায্য করবে


1

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

ক্রিয়াকলাপ:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}

AndroidManifests:

 <activity android:name=".LoginActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/title_activity_login"
            android:theme="@style/FullscreenTheme"
            ></activity>

1

একটি খালি ক্রিয়াকলাপ তৈরি করুন এবং এতে দুটি লাইন যুক্ত করুন onCreate

public class MainActivity extends AppCompatActivity {

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

        // full screen activity
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getSupportActionBar().hide();

        setContentView(R.layout.activity_main);
    }
    ...
}

1

অনক্রিট () এ সেটকন্টেন্টভিউয়ের পরে এই পদ্ধতিটি ব্যবহার করুন এবং উইট উইন্ডো () দ্বারা উইন্ডো অবজেক্টটি পাস করুন ।

    public void makeActivityFullScreen(Window window){
    View decorView = window.getDecorView();
    //        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
       window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
    }
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    );
}

এই কোডটি খাঁজ স্ক্রিনের জন্যও কাজ করবে। খাঁজ ফুলস্ক্রিনটি পরীক্ষা করতে আপনার অ্যান্ড্রয়েড পি প্রয়োজন তবে আপনার যদি একটি খাঁজ ডিসপ্লে ফোন থাকে তবে সেটিংসে>> প্রদর্শন সেটিং -> অ্যাপ্লিকেশন অনুপাত ---> আপনার অ্যাপ্লিকেশনটি নির্বাচন করুন ---> দুটি বিকল্প থাকবে নিরাপদ ডিসপ্লে এবং পূর্ণ স্ক্রিন, দয়া করে পূর্ণ স্ক্রিনটি নির্বাচন করুন এবং অ্যাপটি চালান, আপনি অ্যান্ড্রয়েড পাই ছাড়াও খাঁজতে পূর্ণস্ক্রিনটি দেখতে পারেন


1

আপনার ক্রিয়াকলাপটিকে পূর্ণ পর্দা করার জন্য:

    // add following lines before setContentView
    // to hide toolbar
                if(getSupportActionBar()!=null)
                    getSupportActionBar().hide();
    //to hide status bar
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);

এটি সরঞ্জামদণ্ড এবং স্ট্যাটাস বারটি আড়াল করবে।

তবে কিছু ক্ষেত্রে, আপনি স্বচ্ছ পটভূমির সাথে স্থিতি বারটি দেখাতে চাইতে পারেন, সেক্ষেত্রে এটি করুন:

// add following lines before setContentView
// to hide toolbar
if(getSupportActionBar()!=null)
   getSupportActionBar().hide();
// to make status bar transparent
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

এর পরিবর্তে টুলবারটি আড়াল করার জন্য অন্য কিছু বিকল্প getSupportActionBar().hide():

  1. অ্যাপ্লিকেশন থিমের পিতামাতার পরিবর্তন করে সরঞ্জামদণ্ডটি সরান:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

  1. আপনি যদি কেবল একটি ক্রিয়াকলাপ থেকে সরঞ্জামদণ্ডটি সরাতে চান তবে ক্রিয়াকলাপ ট্যাগের অধীনে এটি প্রকাশ করুন: android:theme="@style/Theme.AppCompat.Light.NoActionBar"

কোটলিন প্রেমীদের জন্য , কেন এক্সটেনশন ফাংশনগুলি ব্যবহার করবেন না:

প্রথম ক্ষেত্রে:

fun AppCompatActivity.makeItFullScreenStatusBarVisible(){
    supportActionBar?.hide()
    window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
}

এবং এটি আগে কল করুন setContentView:

makeItFullScreenStatusBarVisible()

দ্বিতীয় একের জন্য:

fun AppCompatActivity.makeItFullScreenStatusBarHidden(){
    supportActionBar?.hide()
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
}

এবং আগে এটি কল করুন setContentView:

makeItFullScreenStatusBarHidden()

0

অ্যান্ড্রয়েড 10 এ, কেউই আমার পক্ষে কাজ করেনি।

তবে আমি যে পুরোপুরি সূক্ষ্মভাবে কাজ করেছি (অনস্ক্রেটের প্রথম লাইন):

    View decorView = getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_IMMERSIVE;
    decorView.setSystemUiVisibility(uiOptions);

    setContentView(....);

    if (getSupportActionBar() != null) {
        getSupportActionBar().hide();
    }

উপভোগ করুন :)


0

খাঁজ বা কাটআউট অঞ্চলের মাধ্যমে সামগ্রী প্রদর্শন করতে। এটি ডক্স থেকে সহায়তা করতে পারে:

LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES - বিষয়বস্তু প্রতিকৃতি এবং ল্যান্ডস্কেপ উভয় মোডের কাটআউট অঞ্চলে রেন্ডার করে।

আমার কাছে মূল বিষয়টি ছিল ক্রিয়াকলাপের স্টাইলে এই লাইনটি:

// Important to draw through the cutouts
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> 

আমার জন্য, আমি নিমজ্জন মোডে একটি চিত্র দেখাতে চেয়েছিলাম। আমি যখন এটি ক্লিক করি, আমি চাই সিস্টেম UI (স্থিতি এবং নেভিগেশন বার) প্রদর্শিত হবে।

এখানে আমার সমাধান:

1- ক্রিয়াকলাপে, সিস্টেম ইউআই দেখানোর / আড়াল করার জন্য কয়েকটি পদ্ধতি (স্ট্যাটাস / এনএভি বার)

private fun hideSystemUI() {
    sysUIHidden = true
    window.decorView.systemUiVisibility = (
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            or View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
            // Hide the nav bar and status bar
            or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // Hide nav bar
            or View.SYSTEM_UI_FLAG_FULLSCREEN // Hide status bar
            )
}


private fun showSystemUI() {
    sysUIHidden = false
    window.decorView.systemUiVisibility = (
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            // Set the content to appear under the system bars so that the
            // content doesn't resize when the system bars hide and show.
            or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // layout Behind nav bar
            or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // layout Behind status bar
            )
}

2- এটি আপনার এক্সএমএল লেআউটের মূল দৃশ্যে নিশ্চিত করুন

android:fitsSystemWindows="false"

3- পূর্ণ পর্দার ক্রিয়াকলাপের জন্য স্টাইল যখন প্রদর্শিত হবে তখন স্থিতি / নেভিগেশন বারগুলিকে একটি অর্ধ স্বচ্ছ পটভূমি দেবে:

<style name="FullscreenTheme" parent="AppTheme">
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
    <item name="android:statusBarColor">#50000000</item>
    <item name="android:navigationBarColor">#50000000</item>
    // Important to draw behind cutouts
    <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> 
</style>

<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/sysTransparent</item>
</style>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.