2011-07-16 21 views
7

Tworzę wyskakujący panel z tym samym tekstem, chciałbym wyłączyć tło i uczynić je szarym. Czytałem o setGlassEnabled, ale to nie działa, czy ktoś może pomóc? ps. popup jest poprawnie wizualizowany.Wyskakujące okienko GWT setGlassEnabled (true) nie działa

PopupPanel popup = new PopupPanel(infoType); 
popup.center(); 
popup.setGlassEnabled(true); 
popup.show(); 

Odpowiedz

8

Szklany panel nie ma domyślnego stylu, dlatego domyślnie jest przezroczysty. Jeśli chcesz, aby tło było wyszarzone, musisz dodać styl CSS do szklanego panelu.

Również setGlassEnabled umożliwia jedynie panel szklany do następnego czasie popup jest widoczny, a w przypadku, wyskakujące jest już pokazując podczas rozmowy show (ze względu na wcześniejsze wezwanie do center), więc jest to no-op, a szklany panel w rzeczywistości nie jest używany. Przenieś swoje połączenie na numer center po połączeniu z numerem setGlassEnabled i/lub zadzwoń pod numer hide przed setGlassEnabled.

+0

i bez css nie wyłącza tła? – Erick

+0

Zaktualizowano odpowiedź, podając dodatkowe informacje. –

+0

tnks i zamiana pozycji show z centrum pracy – Erick

2

Umieszczenie następującego kodu u góry okna konstruktora okien dialogowych powoduje usunięcie problemu.

setGlassEnabled(true); 

Style glassStyle = getGlassElement().getStyle(); 
glassStyle.setProperty("width", "100%"); 
glassStyle.setProperty("height", "100%"); 
glassStyle.setProperty("backgroundColor", "#000"); 
glassStyle.setProperty("opacity", "0.45"); 
glassStyle.setProperty("mozOpacity", "0.45"); 
glassStyle.setProperty("filter", " alpha(opacity=45)"); 
0

Javadoc dla setGlassEnabled() jest nieco mylący, mówiąc, że „tło będzie być blokowane z półprzezroczystym okienku”. W rzeczywistości wystarczy tylko zastosować pełnoekranowy element div z domyślną nazwą stylu "gwt-PopupPanelGlass" (przynajmniej od wersji GWT 2.4). Jeśli, powiedzmy, projekt <inherits> tematem takich jak com.google.gwt.user.theme.clean.Clean, następnie clean.css dostarcza półprzezroczyste okienko się spodziewałeś:

.gwt-PopupPanelGlass { 
    background-color: #000; 
    opacity: 0.3; 
    filter: alpha(opacity=30); 
} 

W przeciwnym razie, jak opisano wcześniej, będziesz musiał toczyć własną rękę.

Powiązane problemy