অ্যান্ড্রয়েড: নির্দিষ্ট ক্রিয়াকলাপে কীভাবে অ্যাকশনবারটি লুকানো যায়


96

আমি একটি স্প্ল্যাশ স্ক্রিনে একটি মানচিত্র এবং কিছু নিয়মিত স্ক্রিন সহ একটি সাধারণ ডেমো অ্যাপ্লিকেশন তৈরি করেছি।

আমার শীর্ষে একটি অ্যাকশন বার রয়েছে যাতে লোগো রয়েছে। এটি আমার ফোনে ঠিক আছে (গ্যালাক্সি এস 1 আই 9000 ভি 2.3) তবে আমি যখন এটি গ্যালাক্সি এস 2 ভি 4 এ পরীক্ষা করি তখন অ্যাকশন বারটি স্প্ল্যাশ স্ক্রিনে এবং মানচিত্রের স্ক্রিনেও উপস্থিত হয়।

স্প্ল্যাশ এবং মানচিত্রের ক্রিয়াকলাপ এমনকি অ্যাকশনবার্টিভিটি থেকেও উত্তরাধিকার সূত্রে প্রাপ্ত নয় তাই এটি কীভাবে সম্ভব এবং আমি কীভাবে এটিকে দূরে সরিয়ে নিতে পারি?

প্রকাশিত:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/Theme.AppCompat.Light" >
        <activity
            android:name=".HomeActivity"
            android:icon="@drawable/android_logo"
            android:label=""
            android:logo="@drawable/android_logo" >

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            -->
        </activity>
        <activity
            android:name=".MapActivity"
            android:label="" >
        </activity>
        <activity
            android:name=".PackageActivity"
            android:icon="@drawable/android_logo"
            android:label=""
            android:logo="@drawable/android_logo" >
        </activity>
        <activity
            android:name=".SplashActivity"
            android:label="" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

    </application>

MapActivity সংজ্ঞা (এটি দীর্ঘ একটি তাই আমি কেবল সংজ্ঞাটি অন্তর্ভুক্ত করেছি):

public class MapActivity extends FragmentActivity implements LocationListener

স্প্ল্যাশ কার্যকলাপ:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;

public class SplashActivity extends Activity{

    private static final long SPLASH_DISPLAY_LENGTH = 2000;

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

        new Handler().postDelayed(new Runnable(){
            @Override
            public void run() {
                Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
                SplashActivity.this.startActivity(mainIntent);
                SplashActivity.this.finish();
            }
        }, SPLASH_DISPLAY_LENGTH);

    }

}

উত্তর:


129

ক্রিয়াকলাপের জন্য আপনার থিমটিতে নিম্নলিখিতগুলি প্রয়োগ করুন AndroidManifest.xml:

<activity android:name=".Activity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

কৌতুক করা উচিত।


4
getActionBarক্রিয়াকলাপটি উত্তরাধিকারসূত্রে নয় বলে আমি ব্যবহার করতে পারি নাActionBarActivity
টোমর

আমি যদি <item name="android:windowActionBar">false</item>এটি ব্যবহার করি তবে এটি সমস্ত পর্দার আড়াল না?
টোমর

আমার উত্তর আপডেট করুন যা আপনার প্রয়োজনের জন্য আরও উপযুক্ত হতে হবে।
Si8

137

আপনি যেমন কোনও নির্দিষ্ট ক্রিয়াকলাপে কীভাবে আড়াল করবেন সে সম্পর্কে যেমন জিজ্ঞাসা করছেন , এটি আপনার প্রয়োজন:

getSupportActionBar().hide(); 

32

1. আপনার manifest.xmlফাইল যান।

২. Findযার activity tagজন্য আপনি নিজের অ্যাকশনবারটি লুকিয়ে রাখতে চান এবং তারপরে add,

অ্যান্ড্রয়েড: থিম = "@ শৈলী / থিম। অ্যাপকম্প্যাট.নো অ্যাকশনবার"

           <activity
            android:name=".MainActivity"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            >

21

আপনি যদি অ্যাকশনবার এবং শিরোনাম ছাড়াই পূর্ণ পর্দা পেতে চান।

এটি স্টাইল.এক্সএমএল এ যুক্ত করুন

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

এবং manifest.xml এর ক্রিয়াকলাপে শৈলীটি ব্যবহার করুন।

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

15

ActionBarসাধারণত বরাবর বিদ্যমান Fragmentsতাই থেকে Activityআপনি এটা লুকিয়ে রাখতে পারেন

getActionBar().hide();
getActionBar().show();

এবং Fragmentআপনি এটি করতে পারেন

getActivity().getActionBar().hide();
getActivity().getActionBar().show();

6
আমি ব্যবহার: getSupportActionBar().hide(); ActionBarActivity মধ্যে
ইহাব Shoully

8

আপনি যদি থিম।

আমি খুঁজে পেয়েছি যে থিম।

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

7

এটি আমার পক্ষে কাজ করে! এটি আপনার ক্রিয়াকলাপে প্রকাশ করে

<activity
   // ...
   android:theme="@style/Theme.AppCompat.Light.NoActionBar"
   // ...
   </activity>

আপনি আপনার পছন্দসই থিমটি স্টাইলস.এক্সএমএলে তৈরি করতে পারেন:

<style name="Theme.MyCustomTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name = "android:windowActionBar">false</item>
        <item name = "android:windowNoTitle">true</item>
        // more custom...
    </style>

এই সাহায্য আশা করি।


5

আপনি এখানে নিম্ন প্রোফাইল মোড ব্যবহার করতে পারেন See

SYSTEM_UI_FLAG_LOW_PROFILEনেভিগেশন বোতামগুলি যদি স্ক্রিনে উপস্থিত থাকে তবে কেবল এটির জন্য অনুসন্ধান করুন।


+1 আমায় এটা :) থেকে উপস্থাপক জন্য, আমি @ SiKni8 সমাধান প্রথম অ কোডিং সমাধান চেক করব যেমন আমি পছন্দ
Tomer

4
কোনও সমস্যা নেই, আমি আমার অ্যাপ্লিকেশনটিতে একটি সম্পূর্ণ পর্দার মানচিত্র প্রদর্শনের জন্য এটি সত্যিই দরকারী বলে মনে করি, আমার জন্য সত্যই ভাল কাজ করে।
টিএমএইচ

4

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

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

কেবল পরিষ্কার করার জন্য, আপনি এখানে এটি কীভাবে করছেন:

    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);         
    setContentView(R.layout.activity_main);

এটি আপনার স্ক্রিনটিকে একটি পূর্ণ স্ক্রিনে পরিণত করবে, যেমন আপনি শীর্ষস্থানীয় বারটি যেখানে আপনি নেটওয়ার্ক বার দেখেন ইত্যাদি সরিয়ে ফেলবেন


4

অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল এর ক্রিয়াকলাপের জন্য আপনার থিমটিতে নিম্নলিখিতগুলি প্রয়োগ করুন:

<activity android:name=".DashboardActivity"
        android:theme="@style/AppFullScreenTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

তারপরে স্টাইল.এক্সএমএলে আপনার স্টাইলটিতে নিম্নলিখিতগুলি প্রয়োগ করুন

<style name="AppFullScreenTheme" parent="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>

4

// উপরে অ্যাকশনবারটি লুকান

// এই কোডটি জাভা ফাইলে যুক্ত করুন

    ActionBar actionBar=getSupportActionBar();
    actionBar.hide();

1

এটি এপিআই 27 এ কাজ করে

স্টাইলস.এক্সএমএলগুলিতে নিম্নলিখিত কোডগুলিকে প্রতিস্থাপন করুন ....

<resources>
    <!-- No Action Bar -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
</resources>

তারপরে যে ফাইলগুলিতে (উদাঃ কার্যকলাপ_লিস্ট.এক্সএমএল) আপনি একটি সরঞ্জামদণ্ডটি রাখতে চান তা নীচের কোডটি রেখে দিন।

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="@color/colorPrimary"/>

আপনার যদি সমস্যা হয় তবে রৈখিক বিন্যাসে স্যুইচ করুন (কারণ এই কোডটিতে এটি পরীক্ষা করা হয়)


1

থেকে এখানে :

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

সুতরাং একটি বিকল্প হ'ল অ্যাকশনবার সম্পূর্ণরূপে অক্ষম করা (অ্যাপ্লিকেশন ম্যানিফেস্ট.এক্সএমএল ফাইলটিতে) এবং তারপরে অ্যাকশনবারের প্রয়োজন প্রতিটি পৃষ্ঠায় টুলবার যুক্ত করা।

(ধাপে ধাপে ব্যাখ্যার জন্য উপরের লিঙ্কটি অনুসরণ করুন)



0

আপনার স্টাইল। এক্সএমএলে নতুন স্টাইল যুক্ত করুন

<!-- 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="LoginTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

এবং তারপরে আপনার ম্যানিফেস্টে নিম্নলিখিত লাইন যুক্ত করুন

<activity android:name=".Login"
        android:label="@string/app_name"
        android:theme="@style/LoginTheme"
        >

0

থিম পরিবর্তনের পরে যদি সমস্যাটি এখনও বিদ্যমান থাকে তবে প্যাডিং অ্যাট্রিবিউটটি পরীক্ষা করুন।

প্যাডিং ইস্যু খণ্ড উইন্ডো / অ্যাপ্লিকেশন উইন্ডোর উপরে একটি সাদা স্থান তৈরি করছে

প্যাডিং ইস্যু খণ্ড উইন্ডো / অ্যাপ্লিকেশন উইন্ডোর উপরে একটি সাদা স্থান তৈরি করছে

একবার আপনি প্যাডিং সরিয়ে ফেলুন - শীর্ষ মান স্বয়ংক্রিয়ভাবে সাদা স্থান সরিয়ে ফেলা হবে।

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