Klicken Sie auf nicht vollständig sichtbar sind, imageButton mit Espresso

Habe ich eine benutzerdefinierte ImageButton ist nicht vollständig sichtbar, vom design, also wenn ich eine Klick-Aktion bekomme ich diesen Fehler:

android.support.test.espresso.PerformException: Error performing 'single click' on view 'with id: test.com.myproject.app:id/navigationButtonProfile'.
Caused by: java.lang.RuntimeException: Action will not be performed because the target view does not match one or more of the following constraints:
at least 90 percent of the view's area is displayed to the user.
at android.support.test.espresso.ViewInteraction$1.run(ViewInteraction.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)

Einen kleinen Teil der Schaltfläche, wird außerhalb des Bildschirms (d.h. er wird zugeschnitten auf die Spitze), vielleicht 12% der button außerhalb des Bildschirms. Dies ist gewollt, und es ist nicht möglich zu Blättern oder führen Sie eine beliebige Ansicht Aktion um es sichtbar zu machen.
Jeder weiß, wie man in der Vergangenheit dieser 90%-Einschränkung?

Lösung:
Ich habe meine eigenen klicken Sie auf Aktion wie vorgeschlagen und es funktionierte perfekt.
Ich kopierte die Klasse von Google Espresso und verändert, von 90 auf 75, die in dieser Methode:

    @Override
    @SuppressWarnings("unchecked")
    public Matcher<View> getConstraints() {
        Matcher<View> standardConstraint = isDisplayingAtLeast(75);
        if (rollbackAction.isPresent()) {
            return allOf(standardConstraint, rollbackAction.get().getConstraints());
        } else {
            return standardConstraint;
        }
    }
  • die rollbackAction Teil des Codes war mir kompilieren Fehler und könnte es nicht sein auto importiert
InformationsquelleAutor HowieH | 2015-03-03
Schreibe einen Kommentar