Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Kotlin में Android होम और सिस्टम बटन कैसे डिसेबल करें?

यह उदाहरण दर्शाता है कि Kotlin में इमर्सिव मोड (Immersive Mode) का उपयोग करके नेविगेशन बार (होम, बैक, रीसेंट बटन) और स्टेटस बार को कैसे छुपाया जाता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project, भाषा Kotlin चुनें।

चरण 2: लेआउट XML

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="https://schemas.android.com/apk/res/android" 
    xmlns:tools="https://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 
    <TextView 
        android:id="@+id/textView" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" 
        android:layout_marginTop="50dp" 
        android:padding="8dp" 
        android:text="Tutorials Point" 
        android:textColor="@color/colorPrimaryDark" 
        android:textSize="48sp" 
        android:textStyle="bold" /> 
    <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true" 
        android:text="होम और सिस्टम बटन छुपाए गए" 
        android:textAlignment="center" 
        android:textColor="@android:color/background_dark" 
        android:textSize="24sp" 
        android:textStyle="bold" /> 
</RelativeLayout>

चरण 3: MainActivity.kt

package com.app.sample 

import android.os.Bundle 
import android.view.View 
import androidx.appcompat.app.AppCompatActivity 
import java.util.Timer 
import java.util.TimerTask 

class MainActivity : AppCompatActivity() { 
    override fun onCreate(savedInstanceState: Bundle?) { 
        super.onCreate(savedInstanceState) 
        setContentView(R.layout.activity_main) 
        title = "KotlinApp" 
    } 
    
    override fun onWindowFocusChanged(hasFocus: Boolean) { 
        super.onWindowFocusChanged(hasFocus) 
        if (hasFocus) hideNavigationBar() 
    } 
    
    private fun hideNavigationBar() { 
        val decorView = window.decorView 
        val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
            or View.SYSTEM_UI_FLAG_FULLSCREEN 
            or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
            or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
            or View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
            or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) // स्टिकी इमर्सिव जोड़ें
        
        decorView.systemUiVisibility = uiOptions 
        
        // मूल कोड में टाइमर था जो हर 2ms में UI फ्लैग सेट करता था - यह बैटरी खाता है
        // बेहतर: SYSTEM_UI_FLAG_IMMERSIVE_STICKY उपयोग करें जो ऑटो-हाइड हैंडल करता है
    } 
}

महत्वपूर्ण सुधार

  • मूल कोड में Timer हर 2ms में UI फ्लैग सेट कर रहा था - यह बहुत खराब प्रैक्टिस है (बैटरी ड्रेन, UI जैंक)
  • SYSTEM_UI_FLAG_IMMERSIVE_STICKY फ्लैग जोड़ा गया - यह सिस्टम को स्वाइप से बार दिखाने और ऑटो-हाइड करने देता है
  • onWindowFocusChanged में फोकस चेक जोड़ा गया

मॉडर्न API (Android 11+/API 30+): WindowInsetsController

// Activity में 
override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { 
        window.insetsController?.apply { 
            hide(WindowInsets.Type.systemBars()) 
            systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE 
        } 
    } else { 
        hideNavigationBarLegacy() 
    } 
}

चरण 4: AndroidManifest.xml

मानक मैनिफेस्ट। फुलस्क्रीन थीम के लिए:

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

ऐप चलाएं

डिवाइस कनेक्ट करें, Run करें। नेविगेशन बार और स्टेटस बार छुप जाएंगे। नीचे से स्वाइप करके अस्थायी रूप से दिखाएं।

Kotlin में Android होम और सिस्टम बटन कैसे डिसेबल करें?

  1. Android में ड्रैग एंड ड्रॉप कैसे उपयोग करें? Android में ड्रैग एंड ड्रॉप कैसे उपयोग करें?

    Android Drag and Drop API से व्यू मूव करना यह उदाहरण दर्शाता है कि View.OnDragListener और View.OnTouchListener का उपयोग करके दो कंटेनर्स के बीच एक इमेज को ड्रैग-एंड-ड्रॉप कैसे किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट फ़ाइल (res/layout/activity_

  1. एंड्रॉइड में होम और सिस्टम बटन छुपाना (इमर्सिव मोड) एंड्रॉइड में होम और सिस्टम बटन छुपाना (इमर्सिव मोड)

    सिस्टम नेविगेशन बार और स्टेटस बार छुपाने के लिए इमर्सिव मोड एंड्रॉइड में होम बटन डिसेबल करना सीधे संभव नहीं है (सुरक्षा कारणों से), लेकिन आप इमर्सिव फुल-स्क्रीन मोड का उपयोग करके सिस्टम बार्स (नेविगेशन बार, स्टेटस बार) को छुपा सकते हैं। यह गेम्स, वीडियो प्लेयर्स, रीडिंग ऐप्स के लिए उपयुक्त है। चरण

  1. - एंड्रॉइड में Kotlin का उपयोग करके GridView स्क्रॉलिंग को कैसे अक्षम करें?

    परिचय यह उदाहरण दर्शाता है कि एंड्रॉइड में Kotlin का उपयोग करके GridView की स्क्रॉलिंग कार्यक्षमता को कैसे अक्षम किया जाए। यह तब उपयोगी होता है जब आप ग्रिड आइटम को स्थिर रखना चाहते हैं और उपयोगकर्ता को स्क्रॉल करने से रोकना चाहते हैं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में जाएं, File → New P