0
我有一個擴展了smartgwt ImgButton的類。當按下按鈕時,應該顯示包含更多按鈕的彈出窗口。這個彈出框中的按鈕不應該像普通按鈕那樣呈現,而應該像文本鏈接 - 所以我應用了一個自定義CSS類。到目前爲止一切正常。但是,當我按下彈出窗口中的任何按鈕時,按鈕的背景變得透明,彈出窗口後面的文字閃爍。這很醜陋,但我找不到解決這個問題的方法。帶按鈕的GWT PopupPanel
有沒有人有一個想法如何保持按鈕被按下時的背景顏色?
下面是代碼:
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.ImgButton;
import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
public class MultiButton extends ImgButton {
private PopupPanel popup;
private VerticalPanel content;
public MultiButton() {
super();
popup = new PopupPanel();
popup.setAnimationEnabled(true);
popup.setAutoHideEnabled(true);
content = new VerticalPanel();
popup.add(content);
this.setWidth(18);
this.setHeight(18);
this.setShowRollOver(false);
this.setShowDown(false);
this.setSrc("person.png");
this.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
popup.setPopupPositionAndShow(new PopupPanel.PositionCallback() {
@Override
public void setPosition(int offsetWidth, int offsetHeight) {
int left = event.getX() + 7;
int top = event.getY() + 7;
popup.setPopupPosition(left, top);
}
});
}
});
}
public void addMultiButtonEntry(String name, ClickHandler handler) {
Button b = new Button(popup.getStyleName());
b.addClickHandler(handler);
b.setShowHover(false);
b.setShowRollOver(false);
b.setBaseStyle("nt-multibutton-button");
b.setAlign(Alignment.LEFT);
content.add(b);
}
}
,這是CSS定義:
.nt-multibutton-button {
border: 0px !important;
color: #657380;
font-size: 11px;
font-weight: bold;
text-align: left;
padding-left: 5px;
width:90%;
background-color: white;
}
感謝您的每一個提示! PS:我知道混合SmartGWT和GWT組件並不是很好的風格,但我沒有在SmartGWT中找到PopUp,我也不想編寫自己的代碼。
你應該使用Firebug知道哪種風格對這種透明度負責,並嘗試在CSS中覆蓋它。它可能工作... – 2011-03-22 11:05:16