অ্যান্ড্রয়েড ডায়ালগ: শিরোনাম বার সরিয়ে দেওয়া হচ্ছে


108

আমার একটি অদ্ভুত আচরণ আছে যার উত্সটি আমি চিহ্নিত করতে পারি না।

আমি ক্লাসিক সঙ্গে আমার অ্যাপ্লিকেশন আছে

requestWindowFeature(Window.FEATURE_NO_TITLE);

শিরোনাম / স্থিতি বার সরাতে।

তারপরে আমি একটি ডায়ালগ বাক্স তৈরি করি যাতে ব্যবহারকারীর তথ্য (নাম ইত্যাদি) প্রবেশ করতে দেওয়া হয়

একটি শারীরিক কীবোর্ড সহ, কোনও সমস্যা নেই তবে আমি যখন ভার্চুয়াল কীবোর্ডটি ব্যবহার করি তখন আমার এক অদ্ভুত আচরণ হয়:

প্রতিবার আমি ভার্চুয়াল কী বোর্ডে একটি কী চাপলে শিরোনাম / স্ট্যাটাস বারটি আবার উপস্থিত হয়ে সমস্ত কীবোর্ড লেআউটটিকে আবার ঠেকিয়ে দেয় (ঠিক যখন আমি অ্যাপ্লিকেশনটি শুরু করি তখন এর অ্যানিমেশনের মতো)

এখানে কিছু কোড:

        dialog = new Dialog(context);
        dialog.setContentView(R.layout.logindialog);
        dialog.setTitle("Login:");

        WindowManager.LayoutParams a = dialog.getWindow().getAttributes();

//      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

        a.dimAmount = 0;
        dialog.getWindow().setAttributes(a);

        dialog.setCancelable(true);
        dialog.getWindow().setLayout(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);

এবং তারপর

dialog.show();

আমি চেষ্টা করেছিলাম

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

তবে এটি আমার অ্যাপ্লিকেশনটিকে ক্র্যাশ করে।

এখানে এক্সএমএল

    <TextView android:id="@+id/LoginText"
        android:gravity="fill"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Login:">
    </TextView>         
    <EditText android:id="@+id/LoginEdit"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="jason"
        android:layout_width="200sp"/>
    <TextView android:id="@+id/PasswordText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password:">
    </TextView>         
    <EditText android:id="@+id/PasswordEdit"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="welcome"
        android:layout_width="200sp"
        android:password="true"/>
<LinearLayout 
    android:id="@+id/test2"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<Button android:id="@+id/LoginButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Login" />
<Button android:id="@+id/CreateButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Create" />
<Button android:id="@+id/CancelLogin"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Cancel" />
</LinearLayout>/>


আপনি যখন ডায়লগটি ব্যবহার করেন তখনই লগক্যাটটি পোস্ট করুন quআপনি উইন্ডো ফিচার (উইন্ডো.এফইএটিচার_এনওআরএল); উপরের লাইন কোডটি ব্যবহার করার সময় ডায়ালগ.সেটিটেল ("লগইন:") ব্যবহার করবেন না;
ইংসৌরভ

পরামর্শের জন্য ধন্যবাদ তবে এটি সমস্যা নয়। কি-বোর্ডের সাহায্যে যখন আমি কিছু টাইপ করি তখন কী হয় তা হ'ল স্থিতি বারটি প্রতিটি কী স্ট্রোকের সাথে উপস্থিত এবং অদৃশ্য হয়ে যায়।
জেসন রজার্স

উত্তর:


434

ব্যবহার,

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before     
dialog.setContentView(R.layout.logindialog);

পরামর্শের জন্য ধন্যবাদ তবে এটি সমস্যা নয়। কি-বোর্ডের সাহায্যে যখন আমি কিছু টাইপ করি তখন কী হয় তা হ'ল স্থিতি বারটি প্রতিটি কী স্ট্রোকের সাথে উপস্থিত এবং অদৃশ্য হয়ে যায়।
জেসন রজার্স

9
কিছু ডিভাইসে এটি ডায়ালগ বিন্যাসের প্রস্থ হারাতে পারে তবে উচ্চতা বজায় রাখে। আমি দেখতে পেলাম যে এটি যোগ করার আগে .শো () এগুলি ঠিক করে দিয়েছে যদিও তারা ইতিমধ্যে xML লেআউটে সেট করা আছে। কথোপকথন উইন্ডো () .লিটআউট (উইন্ডো ম্যানেজ। লেআউটপ্যারামস। ম্যাচ_প্যারেন্ট, উইন্ডো ম্যানেজ.লয়আউটপ্যারামস.আরপ্প_কন্টেন্ট);
a54studio

1
ডায়ালগফ্রেগমেন্টের উত্তরাধিকারীর ক্ষেত্রে আমাদের getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);ভিতরে রাখা দরকার onCreateView
আন্তন হলভিন

1
আপনি যদি অ্যাপকম্প্যাটডায়ালগ ব্যবহার করে থাকেন তবে ব্যবহার করুন: dialog.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
ফিরজেন

24

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

<style name="myDialog" parent="android:style/Theme.Dialog">
   <item name="android:windowNoTitle">true</item>
</style>

তারপরে এটি আপনার প্রকাশ্যে যুক্ত করুন:

 <activity android:name=".youractivity" android:theme="@style/myDialog"></activity>

14

উপরের সমস্ত উত্তর আমার জন্য অ্যাপকম্প্যাটডায়ালগের জন্য কাজ করছে না

আপনি যদি AppCompatDialog ব্যবহার করছেন তবে এটি ব্যবহার করে দেখুন

গুরুত্বপূর্ণ দ্রষ্টব্য: সেটকন্টেন্টভিউ কল করার আগে এটি সেট করুন।

dialog.supportRequestWindowFeature (Window.FEATURE_NO_TITLE);


আপনাকে ধন্যবাদ, এটি আমার সমস্যা ছিল, আমাকে পাগল করে তুলেছে।
গ্রেগকো

5

আপনার এক্সএমএল তৈরি করুন যা এখানে কথোপকথনে প্রদর্শিত হচ্ছে এটি কার্যকলাপ_নি_শিরোনাম_ডায়ালগ

final Dialog dialog1 = new Dialog(context);
dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog1.setContentView(R.layout.activity_no_title_dialog);
dialog1.show();

2

আপনি শিরোনাম বারটি প্রদর্শন না করার জন্য থিমটিকে অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলটিতেও সংজ্ঞায়িত করতে পারেন ..

আপনি কেবল android:theme="@android:style/Theme.Light.NoTitleBar"ক্রিয়াকলাপে থিমটি সংজ্ঞায়িত করেছেন যেখানে আপনি শিরোনাম বারটি প্রদর্শন করতে চান না

উদাহরণ: -

    <uses-sdk android:minSdkVersion="4"android:targetSdkVersion="4" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".splash"
              android:label="@string/app_name" android:screenOrientation="portrait"
              android:theme="@android:style/Theme.Light.NoTitleBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<activity android:name="main" android:screenOrientation="portrait" android:theme="@android:style/Theme.Light.NoTitleBar"></activity>


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

2

আপনি যদি কোনও কাস্টম ভিউ ব্যবহার করছেন তবে এর মতো সামগ্রী ভিউ যুক্ত করার আগে উইন্ডো বৈশিষ্ট্যটির জন্য অনুরোধ করতে রিমবার

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(view);
dialog.show();

1

সেট কনটেন্টভিউয়ের আগে কোডের নীচে ব্যবহার করুন: -

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(R.layout.custom_dialog);

দ্রষ্টব্য: - উপরের কোডটি অবশ্যই উপরে ব্যবহার করতে হবেdialog.setContentView(R.layout.custom_dialog);

এক্সএমএলে একটি থিম ব্যবহার করুন

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

এছাড়াও স্টাইল.এক্সএমএল:

<style name="hidetitle" parent="android:style/Theme.Dialog">
   <item name="android:windowNoTitle">true</item>
</style>

এবং তারপর:

Dialog dialog_hidetitle_example = new Dialog(context, R.style.hidetitle);

1

আমি একজন অ্যান্ড্রয়েড নবাগত এবং শিরোনাম বার থেকে মুক্তি পাওয়ার চেষ্টা করে এই প্রশ্নটি এসেছি।

আমি একটি ক্রিয়াকলাপ ব্যবহার করছি এবং এটিকে একটি কথোপকথন হিসাবে প্রদর্শন করছি। আমি থিমগুলি নিয়ে ঘুরে বেড়াচ্ছিলাম এবং ডিফল্ট থিংসিংয়ের একটি দরকারী বিস্তৃত জুড়ে এসেছি।

AndroidManifest.xmlশিরোনাম দণ্ডটি যখন দেখানো হচ্ছে তখন আমার ব্যবহার কোডটি এখানে ছিল:

<activity
    android:name=".AlertDialog"
    android:theme="@android:style/Theme.Holo.Dialog"

    >

</activity>

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

<activity
    android:name=".AlertDialog"
    android:theme="@android:style/Theme.Holo.Dialog.NoActionBar"

    >

</activity>

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


1

আমি পরবর্তী রূপ ব্যবহার করছি:

আমার কাস্টম ডায়ালগটির ক্রিয়াকলাপ:

public class AlertDialogue extends AppCompatActivity {

    Button btnOk;
    TextView textDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_alert_dialogue);

        textDialog = (TextView)findViewById(R.id.text_dialog) ;
        textDialog.setText("Hello, I'm the dialog text!");

        btnOk = (Button) findViewById(R.id.button_dialog);
        btnOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

activity_alert_dialogue.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    tools:context=".AlertDialogue">

    <TextView
        android:id="@+id/text_dialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="24dp"
        android:text="Hello, I'm the dialog text!"
        android:textColor="@android:color/darker_gray"
        android:textSize="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_dialog"
        android:layout_width="wrap_content"
        android:layout_height="36dp"
        android:layout_margin="8dp"
        android:background="@android:color/transparent"
        android:text="Ok"
        android:textColor="@android:color/black"
        android:textSize="14dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/text_dialog" />


</android.support.constraint.ConstraintLayout>

সুস্পষ্ট:

<activity android:name=".AlertDialogue"
            android:theme="@style/AlertDialogNoTitle">
</activity>

শৈলী:

<style name="AlertDialogNoTitle" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:windowNoTitle">true</item>
</style>

1

পরবর্তী রূপের সাথে আমার কোনও প্রতিক্রিয়া নেই:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before     
dialog.setContentView(R.layout.logindialog);

সুতরাং, আমি পরবর্তী ব্যবহার করার চেষ্টা করুন:

dialog.supportRequestWindowFeature(Window.FEATURE_NO_TITLE); //before     
dialog.setContentView(R.layout.logindialog);

এই বৈকল্পিক দুর্দান্ত কাজ।


0

এটি আমার পক্ষে কাজ করেছে।

Dailog dialog = new Dialog(MyActivity.this, R.style.dialogstyle);

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="dialogstyle" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@null</item>
        <item name="android:windowNoTitle">false</item>
    </style>
</resources>

0

আপনি এই সাধারণ অ্যান্ড্রয়েড ডায়ালগ পপআপ লাইব্রেরি চেষ্টা করতে পারেন । আপনার ক্রিয়াকলাপটি ব্যবহার করা খুব সহজ।

জমা দেওয়ার বোতামটি ক্লিক করা হলে আপনার কোডটিতে উপরের লাইব অন্তর্ভুক্ত করার পরে কোড অনুসরণ করার চেষ্টা করুন

Pop.on(this)
   .with()
   .title(R.string.title) //ignore if not needed
   .icon(R.drawable.icon) //ignore if not needed
   .cancelable(false) //ignore if not needed
   .layout(R.layout.custom_pop)
   .when(new Pop.Yah() {
       @Override
       public void clicked(DialogInterface dialog, View view) {
           Toast.makeText(getBaseContext(), "Yah button clicked", Toast.LENGTH_LONG).show();
       }
   }).show();

আপনার গ্রেডে একটি লাইন যুক্ত করুন এবং আপনি যেতে ভাল

dependencies {
    compile 'com.vistrav:pop:2.0'
}

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