小编vau*_*oid的帖子

Make Espresso等待WebView完成加载

有没有可靠的方法让Espresso等待WebViews完成加载?

我尝试过这里概述的方法,但发现它不可靠.它还有其他缺点:

  • 它依赖于替换WebView的WebChromeClient.由于WebViewrt由于某种原因没有getWebChromeClient()方法,因此无法包装任何现有的WebChromeClient.
  • 它需要一个特定的WebView实例,因此每次我使用WebView启动一个Activity时,我必须获取WebView实例并为其注册一个新的WebviewIdlingResource.

我希望有人有一个没有任何这些缺点的解决方案.我曾希望espresso-web软件包可以提供解决方案,但它似乎没有提供与加载有关的任何内容.

testing android webview android-espresso

26
推荐指数
1
解决办法
4349
查看次数

Android上部分选中的复选框?

在Android上,我需要一个复选框(或类似复选框的组件),它可以表示/控制许多选定项目的标志.我需要代表三种可能性:

  1. 为所有项目设置标志.
  2. 没有任何项目设置标志.
  3. 为某些项目设置了标志.

我想象的是这样的:

在此输入图像描述

如果用户在状态3中选中该复选框,则它将切换到状态1.此后,它将仅在状态1和2之间切换.

如果您熟悉Windows中文件属性对话框的属性部分中的复选框,那就是我所追求的.

是否有本机Android UI小部件或现有的开源小部件,可以执行此操作?

我相信我可以自己实施,但我宁愿不重新发明轮子!

checkbox android selection

15
推荐指数
1
解决办法
3499
查看次数

Swing GroupLayout:调整和限制组件大小

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)

任何人都可以建议一种限制标签宽度的方法吗?

我可能每次都可以从头开始重建布局,但我觉得应该有一种更简单的方法.

java swing grouplayout

10
推荐指数
1
解决办法
2万
查看次数

检测JSpinner按钮事件

我需要创建一些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.

编辑:"默认外观" - >"当前外观".

java swing look-and-feel jbutton jspinner

1
推荐指数
1
解决办法
2674
查看次数