111 votes

Android Dialogue: la Suppression de la barre de titre

J'ai un comportement bizarre je ne peux pas identifier la source de.

J'ai mon application avec le classique

requestWindowFeature(Window.FEATURE_NO_TITLE);

pour supprimer le titre et la barre de status.

J'ai ensuite créer une boîte de Dialogue pour permettre à l'utilisateur de saisir des informations (nom, etc)

Avec un clavier physique, pas de problème, mais lorsque j'utilise le clavier virtuel j'ai un comportement étrange:

chaque fois que j'ai frappé une touche sur la touche virtuelle conseil d'administration le titre et la barre de status réapparaît de pousser tout le clavier qui les entourent, puis disparaît à nouveau (tout comme l'animation de lors du démarrage de l'application)

voici un code :

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

et puis

dialog.show();

J'ai essayé

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

mais il bloque mon application.

voici le xml

    <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>/>

439voto

sat Points 9580

l'utilisation, la

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

24voto

Pratik Bhat Points 1928

créer un nouveau style dans styles.xml

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

puis l'ajouter à ur manifeste:

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

5voto

Sagar Vaghela Points 305

créez votre XML, ce qui est indiqué dans la boîte de dialogue ici, il est activity_no_title_dialog

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

2voto

Mohit Kanada Points 2603

Vous pouvez également définir un Thème de l'android fichier de manifeste pour ne pas afficher la barre de Titre..

Vous venez de définir le thème android:theme="@android:style/Theme.Light.NoTitleBar" dans une activité où u ne veux pas d'affichage de la barre de titre

Exemple:-

    <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>

1voto

Golu Points 7213

l'utilisation de code ci-dessous avant de setcontentview :-

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

Remarque:- code ci-dessus doivent avoir à utiliser au-dessus de dialog.setContentView(R.layout.custom_dialog);

Dans l'utilisation de XML un thème

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

aussi styles.xml:

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

Et puis:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X