Android Custom Dialog с прозрачным окном Фон ломает мой селектор кнопок - PullRequest
1 голос
/ 29 октября 2011

Я делаю собственный диалог с прозрачным фоном окна, установленным в стиле.У меня есть еще одна кнопка в моей деятельности за диалоговым набором с тем же button_selector, что и с фоном, и он работает нормально, поэтому я знаю, что проблема связана со стилем, а точнее с атрибутом windowBackground.

Кто-нибудь знает, как я могу получить прозрачный фон окна для своего настраиваемого диалогового окна, но при этом позволяю моему селектору кнопок работать должным образом?

Включены изображения того, как он выглядит с фоном кнопки, установленным в@ drawable / lightblue1 и @ drawable / button_selector.

это мой стиль xml

<resources>
   <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
     <item name="android:windowBackground">@color/transparent</item>
     <item name="android:windowIsFloating">false</item>
     <item name="android:windowNoTitle">true</item>
  </style>
</resources>

Если я удалю строку <item name="android:windowBackground">@color/transparent</item>, то мой селектор кнопок будет работать правильно, но мой диалогпоместите в фоновый контейнер контейнера системного фона по умолчанию.

Это мое объявление кнопки xml.Если я изменю @ drawable / button_selector на один из реальных png-файлов, то он будет отображаться правильно, но с помощью селектора мой фон кнопки станет прозрачным.

  <Button
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:background="@drawable/button_selector"
  android:layout_marginBottom="15dp"
  android:textSize="35sp"
  android:text="@string/btnText1">
  </Button>

Вот как я создаю диалог из Java:

 Dialog dialog = new Dialog(TimeClock.this, R.style.CustomDialogTheme);
 dialog.setContentView(R.layout.tag);
 dialog.show();

Вот button_selector.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/darkblue1" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/darkblue1" /> <!-- focused -->
     <item android:drawable="@drawable/lightblue1" /> <!-- default -->
 </selector>

РЕДАКТИРОВАТЬ: я закончил "подделывать" мой диалог с полупрозрачной деятельностью, чтобы я мог лучше контролировать еговнешний вид.

with button set to the the png file with button set from the selector

1 Ответ

4 голосов
/ 30 октября 2011

Я не совсем понимаю, что происходит не так, но, возможно, стоит определить свою CustomDialogTheme на основе существующей полупрозрачной темы?например,

<resources>
   <style name="CustomDialogTheme" parent="@android:style/Theme.Translucent.NoTitleBar">

Возможно также, что вам может потребоваться установить некоторые дополнительные элементы стиля, например (взяты из этот вопрос ):

<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">true</item>

IИнтересно, использует ли Android одну из этих настроек, чтобы ваш селектор кнопок работал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...