Mam dziwne zachowanie, którego nie mogę określić źródła.
Mam swoją aplikację z klasyczną wersją
requestWindowFeature(Window.FEATURE_NO_TITLE);
aby usunąć pasek tytułu / stanu.
Następnie tworzę okno dialogowe, aby umożliwić użytkownikowi wprowadzanie informacji (nazwa itp.)
Z fizyczną klawiaturą nie ma problemu, ale kiedy używam wirtualnej klawiatury, mam dziwne zachowanie:
za każdym razem, gdy naciskam klawisz na wirtualnej klawiaturze, pasek tytułu / stanu pojawia się ponownie, przesuwając cały układ klawiatury, a następnie znika ponownie (podobnie jak animacja, gdy uruchamiam aplikację)
tutaj jest kod:
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);
i wtedy
dialog.show();
próbowałem
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
ale powoduje awarię mojej aplikacji.
tutaj jest plik 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>/>
Odpowiedzi:
posługiwać się,
źródło
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
środkaonCreateView
.dialog.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
utwórz nowy styl w styles.xml
następnie dodaj to do swojego manifestu:
źródło
Wszystkie powyższe odpowiedzi nie działają dla mnie w AppCompatDialog
Jeśli używasz AppCompatDialog, spróbuj tego
Ważna uwaga: ustaw to przed wywołaniem setContentView.
źródło
utwórz swój XML, który jest pokazany w oknie dialogowym, tutaj jest activity_no_title_dialog
źródło
Możesz także zdefiniować motyw w pliku manifestu systemu Android, aby nie wyświetlać paska tytułu.
Po prostu definiujesz motyw
android:theme="@android:style/Theme.Light.NoTitleBar"
w działaniu, w którym nie chcesz wyświetlać paska tytułuPrzykład:-
źródło
jeśli używasz widoku niestandardowego, pamiętaj, aby zażądać funkcji okna przed dodaniem widoku zawartości w ten sposób
źródło
użyj poniższego kodu przed setcontentview: -
Uwaga: - powyższy kod musi być użyty powyżej
dialog.setContentView(R.layout.custom_dialog);
W XML użyj motywu
także styles.xml:
I wtedy:
źródło
Jestem nowicjuszem w Androidzie i natknąłem się na to pytanie, próbując pozbyć się paska tytułu.
Używam działania i wyświetlam go jako okno dialogowe. Szperałem w tematach i natrafiłem na przydatny domyślny motyw.
Oto kod z mojego
AndroidManifest.xml
, którego używałem, gdy wyświetlał się pasek tytułu:Oto zmiana, która przyniosła mi pożądany rezultat:
Jak powiedziałem, wciąż jestem nowy w Androidzie, więc może to mieć niepożądane skutki uboczne, ale wydaje mi się, że dało mi to oczekiwany rezultat, czyli usunięcie paska tytułu z okna dialogowego.
źródło
Używam następnego wariantu:
Aktywność mojego niestandardowego okna dialogowego:
activity_alert_dialogue.xml:
Oczywisty:
Styl:
źródło
Przy kolejnym wariancie nie mam reakcji:
Więc spróbuję użyć dalej:
Ten wariant działa doskonale.
źródło
To zadziałało dla mnie.
źródło
Możesz wypróbować tę prostą bibliotekę podręcznych okien dialogowych systemu Android . Jest bardzo prosty w użyciu w Twojej działalności.
Po kliknięciu przycisku Prześlij spróbuj wykonać następujący kod po dołączeniu powyższego lib do kodu
Dodaj jedną linię w swoim gradle i gotowe
źródło
dialog1.requestWindowFeature (Window.FEATURE_NO_TITLE);
źródło