What are the advantages and drawbacks of
CardView, other than the shadow or elevation, what is the benefit in performance and looks? What is done using
CardView can also be done using a combination of other layouts.
Cardview is definitely its default implementation of the shadow and the rounded corners, in simple words
Cardview is just a FrameLayout with shadow and rounded corners. You can do almost the same stuff with a
Cardview that you can do with a
Cardview for API>21 uses the elevation api to set the shadows whereas for below API 21 it adds a padding with grey background to create fake shadows(just similar to the custom implementation you were talking about).
Cardview is designed to hold a single child view within itself and would be very difficult to manage multiple child views without overlapping over each other as there is no support of property such as
layout_torightof etc.. to overcome this, the approach taken by developers would be to add another
Relativelayout within the
Cardview to manage the child views, now this would lead to more resource consumption due to nested layouts.
To handle complex layouts its recommended to use the custom views and just to use a single child view use the
To simply put the overhead of the rounded edges and shadows:
If you consider the Framelayout as a cake then the elevation is like the icing and rounded edges is like cherry topping. Its aesthetic with the icing and the topping but you have to shed additional bucks for the icing and cherry.