Views in RecyclerView still has height of 0 even when displayed



I am confused because in my RecyclerView, some items has their height = 0 (even when they are correctly displayed and visible) and some have their normal height.

How is that possible ? If I monitor the height with addOnGlobalLayoutListener, 90% of item has their correct height calculated, and 10% still have 0. Any idea of how android works for this ?

My code is in Kotlin but it doesn’t matter.

init {
       var heightItemView = 0
       var currentY = itemView.y
       var oldY = currentY
   itemView.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
       override fun onGlobalLayout() {
           if (itemView.measuredHeight > 0) {
               heightItemView = itemView.measuredHeight

Kotlin vs Java: Which is the best for Android Developers?

Kotlin vs Java: Which is the best for Android Developers?

In this article will help you spot the major differences between Kotlin vs Java

With the undisputable notoriety of Java as a programming language, Android was found wanting a cutting edge language to compete. Kotlin filled that hole no sooner it was declared as the official language for Android development.

I’ll be discussing the topics in following order:
What is Kotlin? What is its importance?What is Java?Parameters to compare Kotlin and JavaAdvantages of Kotlin over JavaAdvantages of Java over KotlinIs Kotlin going to replace Java?
Let’s begin!

Kotlin vs Java: What is Kotlin? What is its importance?

Kotlin is a statically typed programming language used for Java Virtual Machine (JVM) and JavaScript. The **Kotlin **project was born out of the aspiration for heightened productivity.

Kotlin is officially supported by **Google **for mobile development on Android. Ever since the release of Android Studio 3.0 in 2017, **Kotlin **was included as an alternative to the standard Java compiler.
It is also described as a general-purpose language.Kotlin introduces functional features to support Java interoperability.Helps to improve the coding experience in a way that is both practical and effective. The advantage with **Kotlin **is that you can compile it to a JavaScript and interoperate it with Java.It is supported by leading IDEs and is compatible for **Java **version 6 or 8.
Talking about the importance of this language, it is the most strongly supported **JVM language in the Android ecosystem, aside from Java. **With Kotlin you can write significantly less code when compared with Java. Fewer lines of code imply smaller file sizes for Kotlin, compared to Java equivalents.

Kotlin vs Java: What is Java?

Java is one of the oldest and easiest languages. It has been at the top for more than two decades and it is still a very popular programming language. It is an object-oriented programming language developed by Sun Microsystems, which is currently owned by Oracle.

Java does a whole lot more than just develop Android applications. So if you know your way around Java, you become a part of the bigger Java community and market, hence you have a lot more career opportunities.

This is a reputable programming language. It is mainly:
Concurrent where you can execute many statements instead of sequentially executing it.It is class-based and an object-oriented programming language.Independent programming language which follows the logic of “Write once, Run anywhere” i.e. the compiled code can run on all platforms which supports java.
In simple words, it is a computing platform where one can develop applications.

Now that you’ve got a gist of what is Kotlin and what is *Java, *let’s discuss the parameters to compare Kotlin & Java.

Kotlin vs Java: Parameters to compare Kotlin and Java

I will consider the following parameters to compare Kotlin vs Java.
Compilation timeNull safetyDevelopment speedLambda expressionsCommunity support### Compilation time

Kotlin shows slower compilation speed than Java in most of the cases.

Java’s compilation time is comparatively fast.

Null safety

Kotlin has inbuilt null safety. The not so famous* NullPointerException* is largely responsible for Android development mistakes. Android mainly relies on Null to represent the absence of a value, but it can easily destroy an application. Kotlin easily solves this problem by incorporating inherent null safety. Due to this addition, many developers are saved from writing extra code to work around the issue.

Java does not support Null safety as this was incorporated in recent updates.

Development speed

Kotlin’s code development speed is fast.

Java’s code development speed is comparatively faster.

Lambda expressions

Kotlin supports Lambda expressions which are essentially anonymous functions that can be treated as values. You can pass them as arguments to methods, return them, or do any other thing you would do with a normal object.

Java does not support lambda expressions.

Community support

Kotlin has limited learning resources as it is a small and new community.

Java is a vast programming language so the community circle is bigger than Kotlin.

Kotlin vs Java

Kotlin vs Java: Advantages of Kotlin over Java
Kotlin is interoperable.Concise.Easy learning curve.Provides an enhanced run-time performance.### Interoperability

Kotlin is interoperable with Java, which means that you can leverage all existing Java libraries, JVM, and the frameworks.


This helps in drastically reducing the amount of boilerplate code in your project.

Easy learning curve

The developers who know Java can easily learn Kotlin. Switching from Java to Kotlin does not have much overhead and adapting to it doesn’t possess any cost.

Provides an enhanced run-time performance

Performance during the run-time is high.

Now let us talk about the disadvantages of Kotlin.

Kotlin vs Java: Advantages of Java over Kotlin

In Kotlin, there is definitely a steep learning curve with Kotlin. Its highly concise syntax, while a great advantage, does require some learning up front.Kotlin shows a slower compilation speed than Java in most cases, even though it does beat Java in a few instances.The Kotlin community is still young and the learning resources are limited, so finding answers to problems can be a little difficult. However, with its growing popularity, the resources and community will expand in time.Since Kotlin is still new, finding experienced developers who can act as mentors for your team can be a little difficult. Everyone out there is still just learning and experiencing it.Some features of Android Studio like auto-complete and compilation tend to run slower in Kotlin in comparison to Java.## Kotlin vs Java: Is Kotlin going to replace Java?

Now, I’ll answer your most frequently asked question, is Kotlin going to replace Java? The answer is no. Kotlin has powerful features and so does Java. They both bind together to treat us with more improvised versions. So, yes, Java and Kotlin go hand in hand for android development.

This brings us to the end of this article where we have discussed the major differences between Kotlin and Java. Hope you are clear with all that has been shared with you in this tutorial.

Java Vs. Kotlin: Which One Will Be the Best in 2019?

Java Vs. Kotlin: Which One Will Be the Best in 2019?

Which programming language comes to mind when you hear Android app development? Java or Kotlin? Here is a detailed explanation of the difference between the two programming languages.

Which programming language comes to mind when you hear Android app development? Most probably, you will immediately think of Java. This is because of the vast number of Android apps that are developed in Java.

Developers around the world are still wondering if Kotlin has any future or not. But with the introduction of Kotlin in Google I/O two years back, Kotlin has made its own place in the Android application development market.


Kotlin is the latest statically-typed, open-source programming language that can run effectively on the Java Virtual Machine (JVM). Kotlin is developed by JetBrains and is officially supported by Google.

The recent survey of Jexenter has placed Kotlin as 6th in the top technology trends. To compare Kotlin with Java, we need to understand its benefits and drawbacks. Business leaders like Pivotal, Atlassian, Pinterest, Evernote, and Uber are now using Kotlin for Android app development.

As per the recent statistics by App brain show the Kotlin language holding 25.30 percent of market share among the top apps of 2018, with 40.76 percent of installs of the new apps.

For more on the market share value of Kotlin-based industry, check out this article.

Why Kotlin Is the Leading Programming Language for Android App Development?

Improved Efficiency

With a concise and intuitive syntax, Kotlin provides an increase in the efficiency of the working team. Fewer code lines and less time are required to write and deploy a program. As a result, you will get your app developed quickly.

100 Percent Java-Interoperable Programming Language

In easy terms, Java methods can be called from Kotlin. This feature is beneficial not only for the developers but for the companies that have a large Java code base.

Ease of Maintenance

Kotlin for Android developers is easy to maintain with the support of a large number of IDEs, which includes Android studio and several other SDKs. Additionally, developers can work with any toolkit they are comfortable with.


The latest version of Kotlin is reversely compatible with all the previous versions. This resolves the biggest pain point of Android developers: dealing with multiple versions.

Easy to Learn

Aspirants can learn Kotlin much easier, as compared to Java because it doesn’t require any prior mobile app development knowledge.

Android Studio Support

Android Studio provides extended support and adaptation tools. Developers can work simultaneously on both the languages.

Drawbacks of Kotlin

Compilation Speed

Developers have reported about the fluctuation in the compilation speed of Kotlin codes. In some cases, it is very fast, and in other cases, it is significantly slower.

Less Community Support

Kotlin has a small developer community that results in limited resources to learn the language. There will be a lot of queries which will be unanswered.

Scarcity of Developers

There are very limited numbers of developers available for Kotlin. The talent gap in the Android app development market has increased in regards to Kotlin.


Java is considered one of the best programming languages for app development. The object-oriented programming is just a basic feature. It serves a lot more than just Android app development support. Here are few of the pros and cons of java.

The recent TIOBE index of December 2018 shows Java as number one among the top programming languages.

How Java Is Still Better Than Kotlin?


With the help of the platform-agnostic Java Virtual Machine, Java programs can run on almost any system. As a result, Java has the majority of Android applications.

Large Community

Developers get help on almost any issue, bug, or problem of their Java code with the help of large GitHub and Stack Overflow communities.


Java language is not just limited to Android app development. Java supports cross-platform app development as well.


As Java has developed the Android, it has already existing libraries and SDKs to help in the development process.

Where Does Java Lag behind?


Java requires more memory and is much slower when compared to other languages.

Type-Heavy Language

Java requires long codes that result in more time consuming with more errors and bugs.


If you are a developer, then you need to upgrade your skills to the latest trends. There is no doubt that Java is still the king of Android programming, but as a developer, you need to be up to date. I am sure the above advantages of Kotlin must have convinced you why you should, at least, learn Kotlin for Android app development.

Thanks for reading ❤

If you liked this post, share it with all of your programming buddies!

Kotlin or Stick to the Good ‘Ol Java?

Kotlin or Stick to the Good ‘Ol Java?

<em>Originally published by WadeQ at&nbsp;</em><a href="" target="_blank"><em></em></a>

Originally published by WadeQ at

The hullabaloo about Kotlin and the myriad reasons to ditch Java and learn it has reverberated far and wide across the globe. Several reasons have been opined and penned down in the same fashion…am not going to kiss the blarney stone for this ; just to belabor on the obvious.

Instead, am gonna use a very practical approach to demonstrate to the “doubting Thomases” or naysayers or to seasoned “Javanistas” (like myself), that its time to stop being plastic, pack our bag and baggage, abandon the old ship and aboard the new wave.

For instance, if we want to create a simple program that checks whether a given figure is a square or otherwise, you can do that in fewer lines of code in Kotlin in comparison to java. Still doubting? Check this out…

First we will do the obvious, which is create a java class and define our variables as shown in the figure above. We will need two variables to enable the comparison to check if the figure we are presented with is a square or not.

In java, we need to initialize the objects of a class so as to access it.

As you can see from the above code, we have initialized our two objects inside a constructor.

The reason for using getters and setters in java instead of making your members public is that it makes it possible to change the implementation without changing the interface. … Getter and Setter methods are used when you want to get or set a field (int, String, etc) which is private in a class, from outside the class. In the code below, we add getters to our class, we omitted using setters in this demonstration because we don’t need it.

Up to this point, a kotlin programmer would already have achieved what he wanted, but heck, we have to continue.

java method is a collection of statements that perform some specific task and return results to the caller. A methodcan perform some specific task without returning anything.

We will use a simple method that houses an if statement to do a quick comparison for us and check if what we want is achieved or not.

The logic here is pretty basic. We all are aware that a square has equal sides, and a rectangle doesn’t, it therefore follows that we will check if our given width equals length. If both sides are equal, we have us a square, else its a figure we don’t care the shape.

So we have the class, constructor, getters and finally the engine of our program which is the isFigureSquare() method. We are now set to call our method and invoke the getter to get us our result which is either true or false.

Messy? Or just too many lines? Be the judge. If we run this code we get our result as shown below.

The same logic can be implemented in Kotlin using two very unique ways. Or rather am gonna show only two ways to do it, if you have a better way, please let me know.

As is the norm, am using IntelliJ as my default IDE for this project. We will start with creating our class.

Note that the modifier public disappeared when writing code in

Kotlin. In Kotlin, public is the default visibility, so you can omit it.

Notice how quick we did this in Kotlin? Just by creating an Object of our Class, we easily got access to the class and printed the result out? Now if this is not abracadabra to you, i mean the conciseness, then you must be too old!

In my next method, am going to show you how to write a custom implementation of a property accessor in kotlin. This even makes our code beautiful, concise and just sexy…haha, if that word can be used in this context.

First we declare a class CheckFigure that can check whether it’s a square or not. You don’t need to store that information as a separate field, because you can check whether the height is equal to the width on the go.

The property isSquared doesn’t need a field to store its value. It only has a custom getter with the implementation provided. The value is computed every time the property is accessed.

When you invoke the property as shown above and run the code we get the same results. Try it out and be the judge! Which method did you like?

In conclusion,the search for a tenable Java alternative reached fruition with Kotlin, a statically-typed programming language running on the Java Virtual Machine (JVM). Essentially, Kotlin stripped Java of its complexities and came up with a refined alternative that is as versatile as its predecessor. Try it out, you might just fall in love, again….

Originally published by WadeQ at

Thanks for reading :heart: If you liked this post, share it with all of your programming buddies! Follow me on Facebook | Twitter

Learn More

☞ React Native Vs. Native App Development: What to Choose in 2019

☞ How to make your Kotlin Android animations accessible

☞ Top 5 Kotlin Features That Every Android App Developer Must Know

☞ Kotlin Microservices With Micronaut, Spring Cloud, and JPA

☞ Kotlin for Beginners: Next Android platform language

☞ The Complete Android Kotlin Developer Course

☞ Kotlin for Android: Beginner to Advanced

☞ Kotlin for Beginners: Learn Programming With Kotlin

☞ Android Kotlin Development Masterclass using Android Oreo

☞ Kotlin for Android & Java Developers: Clean Code on Android

☞ Kotlin Android Development Masterclass - With Android Oreo