উত্তর:
আপনি এটি অগ্রগতিতে করতে পারেন:
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"/>
@android:style/Theme.Holo.Light.NoActionBar.Fullscreen
AppCompatActivity
রাখা দরকার । অন্যথায়, আপনি পাবেন:requestWindowFeature
super.onCreate
android.util.AndroidRuntimeException: requestFeature() must be called before adding content
একটা কৌশল নামক ইমারসিভ ফুল স্ক্রীণ মোড উপলব্ধ কিটক্যাট ।
আপনি যদি থিমটি ব্যবহার করতে না চান @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>
ইন 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);
}
যদি আপনি অ্যাপকম্প্যাট এবং অ্যাকশনবার্যাক্টিভিটি ব্যবহার করে থাকেন তবে এটি ব্যবহার করুন
getSupportActionBar().hide();
সতর্কতার সহিত
requestWindowFeature(Window.FEATURE_NO_TITLE);
আপনি যদি অ্যাকশন বারটিকে নিম্নলিখিত হিসাবে সেট করতে কোনও পদ্ধতি ব্যবহার করে থাকেন:
getSupportActionBar().setHomeButtonEnabled(true);
এটি নাল পয়েন্টার ব্যতিক্রম ঘটায়।
এ থেকে অ্যাপকম্প্যাট দিয়ে এটি ব্যবহার করে দেখুন 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" />
অ্যান্ড্রয়েড স্টুডিও ব্যবহার করা (বর্তমান সংস্করণটি এই মুহুর্তে ২.২.২) একটি পূর্ণস্ক্রিন ক্রিয়াকলাপ যুক্ত করা খুব সহজ।
পদক্ষেপ দেখুন:
সম্পন্ন!
এখন আপনার সহজেই একটি পূর্ণস্ক্রিন ক্রিয়াকলাপ রয়েছে (জিনিসগুলি কীভাবে কাজ করে তা জানতে জাভা বর্গ এবং ক্রিয়াকলাপের বিন্যাস দেখুন)!
যারা অ্যাপকম্প্যাক্ট ব্যবহার করে ... স্টাইল.এক্সএমএল
<style name="Xlogo" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
তারপরে নামটি আপনার ম্যানিফেস্টে রাখুন ...
প্রথমে আপনাকে নীচের মতো "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);
}
}
এটি আপনার পূর্ণস্ক্রিন ক্রিয়াকলাপে অ্যাকশনবার / সরঞ্জামদণ্ড এবং স্থিতিবারকেও আড়াল করবে
Andro আইডি
<activity ...
android:theme="@style/FullScreenTheme"
>
</activity>
অ্যাকশনবার / স্ট্যাটাসবার স্টাইল.এক্সএমএল লুকানোর জন্য
<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
।
উত্তরের জন্য ধন্যবাদ ক্রিশ্চিয়ান আমি ত্রুটি পাচ্ছিলাম
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);
?
সম্পূর্ণ নিমজ্জন প্রদর্শন:
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);
}
আমি @ অ্যান্ড্রয়েড: শৈলী / থিম.নোটিটলবার.ফুলস্ক্রিন ব্যবহার না করে আমার নিজস্ব থিমটি ব্যবহার করতে চেয়েছিলাম। তবে এটি এখানে কোনও পোস্টের উল্লেখ হিসাবে কাজ করছে না, তাই এটি বের করার জন্য আমি কিছু টুইট করেছি।
অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল:
<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"
করতে হয়েছিল। সুতরাং আমি পরে একটি নতুন অ্যান্ড্রয়েড সংস্করণে পোর্ট করতে হবে সেই ক্ষেত্রে এটি নিশ্চিত করতে আমি উভয়ই ব্যবহার করেছি।
এখানে একটি উদাহরণ কোড। আপনি নির্দিষ্ট অংশগুলি লুকিয়ে / দেখানোর জন্য পতাকাগুলি চালু / বন্ধ করতে পারেন।
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);
}
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) }
টিপ: 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 );
}
এরপরে উইন্ডোটি সঠিকভাবে পুনরায় মাপ দেবে এবং পরিস্থিতি বারটি পুনরায় প্রদর্শিত হবে না যা ঘটনাকে কেন্দ্র করে এটিকে ট্রিগার করে।
@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);
}
}
স্টাইল.এক্সএমএল এর ভিতরে ...
<!-- 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>
এটি আমার পক্ষে কাজ করেছে। আশা করি এটি আপনাকে সহায়তা করবে।
কোটলিন দিয়ে আমি এইভাবেই করেছি:
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">
এটা আমার জন্য কাজ করেছে।
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);
}
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();
}
সাফল্যের সাথে অনেক সময় পরে আমি আমার নিজস্ব সমাধান নিয়ে এসেছি যা অন্য বিকাশকারীর সাথে একই রকম ছেড়ে যায়। সুতরাং কারও যদি তার প্রয়োজন হয় তবে তা হ'ল আমার সমস্যাটি হ'ল সিস্টেম নেভিগেশন বার কল করার পরেও লুকিয়ে ছিল না। এছাড়াও আমার ক্ষেত্রে আমার ল্যান্ডস্কেপ দরকার, তাই কেবল ক্ষেত্রে লাইনটি এবং তার সবকটিই মন্তব্য করুন। সবার আগে স্টাইল তৈরি করুন
<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>
আমি আশা করি এটা তোমাকে সাহায্য করবে
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>
একটি খালি ক্রিয়াকলাপ তৈরি করুন এবং এতে দুটি লাইন যুক্ত করুন 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);
}
...
}
অনক্রিট () এ সেটকন্টেন্টভিউয়ের পরে এই পদ্ধতিটি ব্যবহার করুন এবং উইট উইন্ডো () দ্বারা উইন্ডো অবজেক্টটি পাস করুন ।
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
);
}
এই কোডটি খাঁজ স্ক্রিনের জন্যও কাজ করবে। খাঁজ ফুলস্ক্রিনটি পরীক্ষা করতে আপনার অ্যান্ড্রয়েড পি প্রয়োজন তবে আপনার যদি একটি খাঁজ ডিসপ্লে ফোন থাকে তবে সেটিংসে>> প্রদর্শন সেটিং -> অ্যাপ্লিকেশন অনুপাত ---> আপনার অ্যাপ্লিকেশনটি নির্বাচন করুন ---> দুটি বিকল্প থাকবে নিরাপদ ডিসপ্লে এবং পূর্ণ স্ক্রিন, দয়া করে পূর্ণ স্ক্রিনটি নির্বাচন করুন এবং অ্যাপটি চালান, আপনি অ্যান্ড্রয়েড পাই ছাড়াও খাঁজতে পূর্ণস্ক্রিনটি দেখতে পারেন
আপনার ক্রিয়াকলাপটিকে পূর্ণ পর্দা করার জন্য:
// 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()
:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
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()
অ্যান্ড্রয়েড 10 এ, কেউই আমার পক্ষে কাজ করেনি।
তবে আমি যে পুরোপুরি সূক্ষ্মভাবে কাজ করেছি (অনস্ক্রেটের প্রথম লাইন):
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_IMMERSIVE;
decorView.setSystemUiVisibility(uiOptions);
setContentView(....);
if (getSupportActionBar() != null) {
getSupportActionBar().hide();
}
উপভোগ করুন :)
খাঁজ বা কাটআউট অঞ্চলের মাধ্যমে সামগ্রী প্রদর্শন করতে। এটি ডক্স থেকে সহায়তা করতে পারে:
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>