Vaadin HorizontalSplitPanel:以像素为单位设置右侧宽度
Vaadin HorizontalSplitPanel: Set right side width in pixels
我可以像下面这样以像素为单位设置 HorizontalSplitPanel
的左侧宽度。
splitter.setSplitPosition(40, Sizeable.Unit.PIXELS);
同上,由于分割位置是40像素,所以分割器左边的宽度是40像素。在某些情况下,我想以像素为单位指定拆分器右侧的宽度。
但是,我无法通过上述方式设置右侧,因为无法找到拆分器的总宽度。如果我能得到总宽度,我可以像下面那样做。
splitter.setSplitPosition(splitter.totalWidth() - 40, Sizeable.Unit.PIXELS);
那么,有什么方法可以定义右侧宽度(以像素为单位)?
您可以"reverse"拆分位置。见 setSplitPosition(float pos, Sizeable.Unit unit, boolean reverse)
:
reverse
- if set to true the split splitter position is measured by the second region else it is measured by the first region
例如:
// run with `spring run vaadin.groovy`
@Grapes([
@Grab('org.vaadin.spring:spring-boot-vaadin:0.0.5.RELEASE'),
@Grab('com.vaadin:vaadin-server:7.5.9'),
@Grab('com.vaadin:vaadin-client-compiled:7.5.9'),
@Grab('com.vaadin:vaadin-themes:7.5.9'),
])
import org.vaadin.spring.annotation.VaadinUI
import com.vaadin.server.VaadinRequest
import com.vaadin.ui.*
import com.vaadin.annotations.*
import com.vaadin.server.Sizeable
@VaadinUI
@Theme("valo")
class MyUI extends UI {
protected void init(VaadinRequest request) {
setContent(new HorizontalSplitPanel(new Label("A"), new Label("B")).with{
setSplitPosition(40, Sizeable.Unit.PIXELS, true /*!*/)
it
})
}
}
我可以像下面这样以像素为单位设置 HorizontalSplitPanel
的左侧宽度。
splitter.setSplitPosition(40, Sizeable.Unit.PIXELS);
同上,由于分割位置是40像素,所以分割器左边的宽度是40像素。在某些情况下,我想以像素为单位指定拆分器右侧的宽度。
但是,我无法通过上述方式设置右侧,因为无法找到拆分器的总宽度。如果我能得到总宽度,我可以像下面那样做。
splitter.setSplitPosition(splitter.totalWidth() - 40, Sizeable.Unit.PIXELS);
那么,有什么方法可以定义右侧宽度(以像素为单位)?
您可以"reverse"拆分位置。见 setSplitPosition(float pos, Sizeable.Unit unit, boolean reverse)
:
reverse
- if set to true the split splitter position is measured by the second region else it is measured by the first region
例如:
// run with `spring run vaadin.groovy`
@Grapes([
@Grab('org.vaadin.spring:spring-boot-vaadin:0.0.5.RELEASE'),
@Grab('com.vaadin:vaadin-server:7.5.9'),
@Grab('com.vaadin:vaadin-client-compiled:7.5.9'),
@Grab('com.vaadin:vaadin-themes:7.5.9'),
])
import org.vaadin.spring.annotation.VaadinUI
import com.vaadin.server.VaadinRequest
import com.vaadin.ui.*
import com.vaadin.annotations.*
import com.vaadin.server.Sizeable
@VaadinUI
@Theme("valo")
class MyUI extends UI {
protected void init(VaadinRequest request) {
setContent(new HorizontalSplitPanel(new Label("A"), new Label("B")).with{
setSplitPosition(40, Sizeable.Unit.PIXELS, true /*!*/)
it
})
}
}