2016-04-01 22 views
0

Tamam, bazı kurgusal sınıfAndroid stüdyo kötü katlama

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

      } 
     } 
    }; 
} 

var Ve bu Android Studio şuna benzer: enter image description here

Bütün daraltmak ise - o çirkin görünür:
enter image description here

Ben if blok onClick() içinde ki kaldırırsanız

- iyi görünüyor:
enter image description here

neden oluyor ben bu sorunu nasıl çözebilir ve ?

+0

Aynı sorunu gördüm ve bana da can sıkıcı geliyor. Sanırım Android Studio/Intellij IDEA'ya bir hata yazmalı veya büyük olasılıkla bir başkasının yarattığı hatayı bulmalıyız. – helleye

cevap

1

Uzun zaman oldu, o yüzden bunun ne kadar yararlı emin değilim.

Bu

Java 8 lambda gösterimi ile bir lambda gibi görsel bir yapı halinde işlev katlama. Tek yöntem arabirimleri (hemen hemen) Java 8'deki lambdalara eşdeğerdir. Android Studio şu anda Java 8 lambda notasyonunu desteklememektedir (bu yanıtın alt kısmında bulunan detaylar: Is it possible to use Java 8 for Android development?).

bir geçici çözüm Jack toolchain dayalı Java 8 için kullanılabilir IS. İşte the workaround ve burada Jack takım zincirinin deprecation.

Başka bir not, here ve here'a göre, Android Studio 2.4 önizleme 4 ve daha sonra gerçek lambda gösterimini destekliyor görünmektedir. Bunların önizleme olduğunu ve en son resmi sürüm 2.3.2 olduğunu unutmayın.

bunu düzeltmek için nasıl gelince, bu mümkün inanmıyorum. Neyi başarmaya çalıştığınızı çoğaltmak için region feature'u kullanabilirsiniz. Yukarıdaki bağlantı, nasıl yapılır?

+0

Hm, bu sorunu zaten unuttum;). Daha sonraki sürümlerde çocuklar bunu düzeltmiş gibi görünüyor. Mevcut versiyonda (2.3.2) bunu üretemiyorum. –

+0

Yine de sorunu görüyorum. Projemde, tümüyle katlanmak yerine lambda ifadesine katlanan oldukça büyük anonim sınıflar var. Ayrıca 2.3.2 çalışıyorum. – AlterionX