有没有可靠的方法让Espresso等待WebViews完成加载?
我希望有人有一个没有任何这些缺点的解决方案.我曾希望espresso-web软件包可以提供解决方案,但它似乎没有提供与加载有关的任何内容.
在Android上,我需要一个复选框(或类似复选框的组件),它可以表示/控制许多选定项目的标志.我需要代表三种可能性:
我想象的是这样的:
如果用户在状态3中选中该复选框,则它将切换到状态1.此后,它将仅在状态1和2之间切换.
如果您熟悉Windows中文件属性对话框的属性部分中的复选框,那就是我所追求的.
是否有本机Android UI小部件或现有的开源小部件,可以执行此操作?
我相信我可以自己实施,但我宁愿不重新发明轮子!
我GroupLayout
用来管理一些动态生成的数据输入表单中的组件.布局或多或少如此:
*-----------------------------------------------*
| label A | field A |
| label B | field B |
| label C | field C |
*-----------------------------------------------*
Run Code Online (Sandbox Code Playgroud)
我使用2个并行组作为水平布局,使用单个顺序组作为垂直布局.在大多数情况下,一切都很好.
我想将标签的最大宽度(仅仅是实例JLabel
)限制为父级宽度的1/3 JFrame
.如果它JFrame
是一个固定的大小,这将是微不足道的,但我必须处理它被调整大小.
我正在接收ComponentListener.componentResized()
事件,JFrame
但是一旦我收到这样的事件,我就会有点困惑.
我没有运气就试过这种方法:
public void componentResized(ComponentEvent e) {
int maxW = parentFrame.getWidth() / 3;
for (JLabel l : labels) {
l.setMaximumSize( // have also tried setSize() and setPreferredSize()
new Dimension(
Math.min(l.getSize().width, maxW),
l.getMaximumSize().height));
}
groupLayout.invalidateLayout(getContentSpace());
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一种限制标签宽度的方法吗?
我可能每次都可以从头开始重建布局,但我觉得应该有一种更简单的方法.
我需要创建一些JSpinner控件,我可以检测按钮按下,同时使用当前的外观.我发现我可以轻松地做到这一点,如下所示:
class CustomSpinnerUI extends BasicSpinnerUI {
@Override
protected Component createNextButton() {
// Add custom ActionListener.
}
@Override
protected Component createPreviousButton() {
// Add custom ActionListener.
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,通过这样做,我最终得到一个看起来很讨厌的微调器,它不会像我的UI的其余部分那样使用相同的外观和感觉.我目前正在使用,Nimbus
但我需要支持不同的L&F配置.
我想过可能会设置某种动态代理,但找不到任何合适的Spinner
接口来让我这样做.
任何人都可以想到解决这个问题的方法吗?我想我要么在ActionListeners
没有子类化的情况下得到按钮BasicSpinnerUI
,要么想办法让我CustomSpinnerUI
使用正确的L&F.
编辑:"默认外观" - >"当前外观".