2016-04-01 6 views
0

Ok, ich habe einige fiktive KlasseAndroid Studio schlecht Falten

public class TEMP { 
    String data; 
    View.OnClickListener onClickListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (data != null) { 

      } 
     } 
    }; 
} 

Und es sieht aus wie diese in Android Studio: enter image description here

Wenn ich alles zusammenbrechen - es sieht hässlich aus:
enter image description here

Wenn ich das if Block innerhalb onClick() - es sieht gut aus:
enter image description here

Warum passiert das und wie kann ich dieses Problem lösen?

+0

Ich habe das gleiche Problem gesehen und es nervt mich auch. Ich denke, wir sollten entweder einen Fehler bei Android Studio/Intellij IDEA einreichen oder den Fehler finden, den wahrscheinlich jemand anderes bereits erstellt hat. – helleye

Antwort

1

Es ist eine Weile her, also bin ich mir nicht sicher, wie hilfreich das ist.

Dies faltet die Funktion in eine Lambda-ähnliche visuelle Struktur mit Java 8 Lambda-Notation. Einzelne Methodenschnittstellen sind in Java 8 (fast) äquivalent zu lambdas. Android Studio unterstützt derzeit keine Java 8-Lambda-Notation (Details finden Sie am Ende dieser Antwort: Is it possible to use Java 8 for Android development?).

Eine Problemumgehung ist für Java 8 verfügbar, basierend auf der Jack Toolchain. Hier ist die the workaround, und hier ist die deprecation der Jack Toolchain.

Ein weiterer Hinweis ist, dass Android Studio 2.4 Vorschau 4 und später scheint nach here und here tatsächlichen Lambda-Notation zu unterstützen. Beachten Sie, dass es sich um Vorschauen handelt und dass die neueste offizielle Version 2.3.2 ist.

Wie zu beheben, ich glaube nicht, dass es möglich ist. Sie können möglicherweise die region feature verwenden, um zu reproduzieren, was Sie erreichen möchten. Der obige Link ist ein How-To-ähnliches.

+0

Hm, ich habe dieses Problem schon vergessen;). Scheint wie in einigen späteren Releases Jungs das behoben. In der aktuellen Version (2.3.2) kann ich das nicht nachvollziehen. –

+0

Ich sehe immer noch das Problem. Ich habe einige ziemlich große anonyme Klassen in meinem Projekt, die sich in einen Lambda-Ausdruck falten, anstatt den ganzen Weg hineinzufalten. Ich laufe auch mit 2.3.2. – AlterionX