belongs to Maven artifact com.android.support:cardview-v7:28.0.0-alpha1
CardView
public
class
CardView
extends FrameLayout
java.lang.Object | ||||
↳ | android.view.View | |||
↳ | android.view.ViewGroup | |||
↳ | android.widget.FrameLayout | |||
↳ | android.support.v7.widget.CardView |
A FrameLayout with a rounded corner background and shadow.
CardView uses elevation
property on Lollipop for shadows and falls back to a
custom emulated shadow implementation on older platforms.
Due to expensive nature of rounded corner clipping, on platforms before Lollipop, CardView does
not clip its children that intersect with rounded corners. Instead, it adds padding to avoid such
intersection (See setPreventCornerOverlap(boolean)
to change this behavior).
Before Lollipop, CardView adds padding to its content and draws shadows to that area. This
padding amount is equal to maxCardElevation + (1 - cos45) * cornerRadius
on the
sides and maxCardElevation * 1.5 + (1 - cos45) * cornerRadius
on top and bottom.
Since padding is used to offset content for shadows, you cannot set padding on CardView.
Instead, you can use content padding attributes in XML or
setContentPadding(int, int, int, int)
in code to set the padding between the edges of
the CardView and children of CardView.
Note that, if you specify exact dimensions for the CardView, because of the shadows, its content
area will be different between platforms before Lollipop and after Lollipop. By using api version
specific resource values, you can avoid these changes. Alternatively, If you want CardView to add
inner padding on platforms Lollipop and after as well, you can call
setUseCompatPadding(boolean)
and pass true
.
To change CardView's elevation in a backward compatible way, use
setCardElevation(float)
. CardView will use elevation API on Lollipop and before
Lollipop, it will change the shadow size. To avoid moving the View while shadow size is changing,
shadow size is clamped by getMaxCardElevation()
. If you want to change elevation
dynamically, you should call setMaxCardElevation(float)
when CardView is initialized.
Summary
XML attributes | |
---|---|
CardView_cardBackgroundColor |
|
CardView_cardCornerRadius |
|
CardView_cardElevation |
|
CardView_cardMaxElevation |
|
CardView_cardPreventCornerOverlap |
|
CardView_cardUseCompatPadding |
|
CardView_contentPadding |
|
CardView_contentPaddingBottom |
|
CardView_contentPaddingLeft |
|
CardView_contentPaddingRight |
|
CardView_contentPaddingTop |
Inherited constants |
---|
From
class
android.view.ViewGroup
|
From
class
android.view.View
|
Inherited fields |
---|
From
class
android.view.View
|
Public constructors | |
---|---|
CardView(Context context)
|
|
CardView(Context context, AttributeSet attrs)
|
|
CardView(Context context, AttributeSet attrs, int defStyleAttr)
|
Public methods | |
---|---|
ColorStateList
|
getCardBackgroundColor()
Returns the background color state list of the CardView. |
float
|
getCardElevation()
Returns the backward compatible elevation of the CardView. |
int
|
getContentPaddingBottom()
Returns the inner padding before the Card's bottom edge |
int
|
getContentPaddingLeft()
Returns the inner padding after the Card's left edge |
int
|
getContentPaddingRight()
Returns the inner padding before the Card's right edge |
int
|
getContentPaddingTop()
Returns the inner padding after the Card's top edge |
float
|
getMaxCardElevation()
Returns the backward compatible maximum elevation of the CardView. |
boolean
|
getPreventCornerOverlap()
Returns whether CardView should add extra padding to content to avoid overlaps with rounded corners on pre-Lollipop platforms. |
float
|
getRadius()
Returns the corner radius of the CardView. |
boolean
|
getUseCompatPadding()
Returns whether CardView will add inner padding on platforms Lollipop and after. |
void
|
setCardBackgroundColor(int color)
Updates the background color of the CardView |
void
|
setCardBackgroundColor(ColorStateList color)
Updates the background ColorStateList of the CardView |
void
|
setCardElevation(float elevation)
Updates the backward compatible elevation of the CardView. |
void
|
setContentPadding(int left, int top, int right, int bottom)
Sets the padding between the Card's edges and the children of CardView. |
void
|
setMaxCardElevation(float maxElevation)
Updates the backward compatible maximum elevation of the CardView. |
void
|
setMinimumHeight(int minHeight)
|
void
|
setMinimumWidth(int minWidth)
|
void
|
setPadding(int left, int top, int right, int bottom)
|
void
|
setPaddingRelative(int start, int top, int end, int bottom)
|
void
|
setPreventCornerOverlap(boolean preventCornerOverlap)
On pre-Lollipop platforms, CardView does not clip the bounds of the Card for the rounded corners. |
void
|
setRadius(float radius)
Updates the corner radius of the CardView. |
void
|
setUseCompatPadding(boolean useCompatPadding)
CardView adds additional padding to draw shadows on platforms before Lollipop. |
Protected methods | |
---|---|
void
|
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
Inherited methods | |
---|---|
From
class
android.widget.FrameLayout
| |
From
class
android.view.ViewGroup
| |
From
class
android.view.View
| |
From
class
java.lang.Object
| |
From
interface
android.view.ViewParent
| |
From
interface
android.view.ViewManager
| |
From
interface
android.graphics.drawable.Drawable.Callback
| |
From
interface
android.view.KeyEvent.Callback
| |
From
interface
android.view.accessibility.AccessibilityEventSource
|
XML attributes
CardView_cardBackgroundColor
Related methods:
CardView_cardCornerRadius
Related methods:
CardView_cardElevation
Related methods:
CardView_cardMaxElevation
Related methods:
CardView_cardPreventCornerOverlap
Related methods:
CardView_cardUseCompatPadding
Related methods:
CardView_contentPadding
Related methods:
CardView_contentPaddingBottom
Related methods:
CardView_contentPaddingLeft
Related methods:
CardView_contentPaddingRight
Related methods:
CardView_contentPaddingTop
Related methods:
Public constructors
CardView
CardView (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context |
attrs |
AttributeSet |
CardView
CardView (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context |
attrs |
AttributeSet |
defStyleAttr |
int |
Public methods
getCardBackgroundColor
ColorStateList getCardBackgroundColor ()
Returns the background color state list of the CardView.
Returns | |
---|---|
ColorStateList |
The background color state list of the CardView. |
getCardElevation
float getCardElevation ()
Returns the backward compatible elevation of the CardView.
Returns | |
---|---|
float |
Elevation of the CardView |
getContentPaddingBottom
int getContentPaddingBottom ()
Returns the inner padding before the Card's bottom edge
Returns | |
---|---|
int |
the inner padding before the Card's bottom edge |
getContentPaddingLeft
int getContentPaddingLeft ()
Returns the inner padding after the Card's left edge
Returns | |
---|---|
int |
the inner padding after the Card's left edge |
getContentPaddingRight
int getContentPaddingRight ()
Returns the inner padding before the Card's right edge
Returns | |
---|---|
int |
the inner padding before the Card's right edge |
getContentPaddingTop
int getContentPaddingTop ()
Returns the inner padding after the Card's top edge
Returns | |
---|---|
int |
the inner padding after the Card's top edge |
getMaxCardElevation
float getMaxCardElevation ()
Returns the backward compatible maximum elevation of the CardView.
Returns | |
---|---|
float |
Maximum elevation of the CardView |
getPreventCornerOverlap
boolean getPreventCornerOverlap ()
Returns whether CardView should add extra padding to content to avoid overlaps with rounded corners on pre-Lollipop platforms.
Returns | |
---|---|
boolean |
True if CardView prevents overlaps with rounded corners on platforms before Lollipop.
Default value is true .
|
getRadius
float getRadius ()
Returns the corner radius of the CardView.
Returns | |
---|---|
float |
Corner radius of the CardView |
See also:
getUseCompatPadding
boolean getUseCompatPadding ()
Returns whether CardView will add inner padding on platforms Lollipop and after.
Returns | |
---|---|
boolean |
true if CardView adds inner padding on platforms Lollipop and after to
have same dimensions with platforms before Lollipop.
|
setCardBackgroundColor
void setCardBackgroundColor (int color)
Updates the background color of the CardView
Related XML Attributes:
Parameters | |
---|---|
color |
int : The new color to set for the card background |
setCardBackgroundColor
void setCardBackgroundColor (ColorStateList color)
Updates the background ColorStateList of the CardView
Related XML Attributes:
Parameters | |
---|---|
color |
ColorStateList : The new ColorStateList to set for the card background |
setCardElevation
void setCardElevation (float elevation)
Updates the backward compatible elevation of the CardView.
Related XML Attributes:
Parameters | |
---|---|
elevation |
float : The backward compatible elevation in pixels. |
setContentPadding
void setContentPadding (int left, int top, int right, int bottom)
Sets the padding between the Card's edges and the children of CardView.
Depending on platform version or getUseCompatPadding()
settings, CardView may
update these values before calling setPadding(int, int, int, int)
.
Related XML Attributes:
- CardView_contentPadding
- CardView_contentPaddingLeft
- CardView_contentPaddingTop
- CardView_contentPaddingRight
- CardView_contentPaddingBottom
Parameters | |
---|---|
left |
int : The left padding in pixels |
top |
int : The top padding in pixels |
right |
int : The right padding in pixels |
bottom |
int : The bottom padding in pixels |
setMaxCardElevation
void setMaxCardElevation (float maxElevation)
Updates the backward compatible maximum elevation of the CardView.
Calling this method has no effect if device OS version is Lollipop or newer and
getUseCompatPadding()
is false
.
Related XML Attributes:
Parameters | |
---|---|
maxElevation |
float : The backward compatible maximum elevation in pixels. |
setMinimumHeight
void setMinimumHeight (int minHeight)
Parameters | |
---|---|
minHeight |
int |
setMinimumWidth
void setMinimumWidth (int minWidth)
Parameters | |
---|---|
minWidth |
int |
setPadding
void setPadding (int left, int top, int right, int bottom)
Parameters | |
---|---|
left |
int |
top |
int |
right |
int |
bottom |
int |
setPaddingRelative
void setPaddingRelative (int start, int top, int end, int bottom)
Parameters | |
---|---|
start |
int |
top |
int |
end |
int |
bottom |
int |
setPreventCornerOverlap
void setPreventCornerOverlap (boolean preventCornerOverlap)
On pre-Lollipop platforms, CardView does not clip the bounds of the Card for the rounded
corners. Instead, it adds padding to content so that it won't overlap with the rounded
corners. You can disable this behavior by setting this field to false
.
Setting this value on Lollipop and above does not have any effect unless you have enabled compatibility padding.
Related XML Attributes:
Parameters | |
---|---|
preventCornerOverlap |
boolean : Whether CardView should add extra padding to content to avoid
overlaps with the CardView corners. |
See also:
setRadius
void setRadius (float radius)
Updates the corner radius of the CardView.
Related XML Attributes:
Parameters | |
---|---|
radius |
float : The radius in pixels of the corners of the rectangle shape |
See also:
setUseCompatPadding
void setUseCompatPadding (boolean useCompatPadding)
CardView adds additional padding to draw shadows on platforms before Lollipop.
This may cause Cards to have different sizes between Lollipop and before Lollipop. If you
need to align CardView with other Views, you may need api version specific dimension
resources to account for the changes.
As an alternative, you can set this flag to true
and CardView will add the same
padding values on platforms Lollipop and after.
Since setting this flag to true adds unnecessary gaps in the UI, default value is
false
.
Related XML Attributes:
Parameters | |
---|---|
useCompatPadding |
boolean : true> if CardView should add padding for the shadows on
platforms Lollipop and above. |
Protected methods
onMeasure
void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
Parameters | |
---|---|
widthMeasureSpec |
int |
heightMeasureSpec |
int |
Annotations
Interfaces
- ActionMenuView.OnMenuItemClickListener
- PopupMenu.OnDismissListener
- PopupMenu.OnMenuItemClickListener
- RecyclerView.ChildDrawingOrderCallback
- RecyclerView.ItemAnimator.ItemAnimatorFinishedListener
- RecyclerView.LayoutManager.LayoutPrefetchRegistry
- RecyclerView.OnChildAttachStateChangeListener
- RecyclerView.OnItemTouchListener
- RecyclerView.RecyclerListener
- RecyclerView.SmoothScroller.ScrollVectorProvider
- SearchView.OnCloseListener
- SearchView.OnQueryTextListener
- SearchView.OnSuggestionListener
- ShareActionProvider.OnShareTargetSelectedListener
- ThemedSpinnerAdapter
- Toolbar.OnMenuItemClickListener
Classes
- ActionMenuView
- ActionMenuView.LayoutParams
- AppCompatAutoCompleteTextView
- AppCompatButton
- AppCompatCheckBox
- AppCompatCheckedTextView
- AppCompatEditText
- AppCompatImageButton
- AppCompatImageView
- AppCompatMultiAutoCompleteTextView
- AppCompatRadioButton
- AppCompatRatingBar
- AppCompatSeekBar
- AppCompatSpinner
- AppCompatTextView
- CardView
- DefaultItemAnimator
- DividerItemDecoration
- GridLayout
- GridLayout.Alignment
- GridLayout.LayoutParams
- GridLayout.Spec
- GridLayoutManager
- GridLayoutManager.DefaultSpanSizeLookup
- GridLayoutManager.LayoutParams
- GridLayoutManager.SpanSizeLookup
- LinearLayoutCompat
- LinearLayoutCompat.LayoutParams
- LinearLayoutManager
- LinearLayoutManager.LayoutChunkResult
- LinearSmoothScroller
- LinearSnapHelper
- ListPopupWindow
- OrientationHelper
- PagerSnapHelper
- PopupMenu
- RecyclerView
- RecyclerView.Adapter
- RecyclerView.AdapterDataObserver
- RecyclerView.EdgeEffectFactory
- RecyclerView.ItemAnimator
- RecyclerView.ItemAnimator.ItemHolderInfo
- RecyclerView.ItemDecoration
- RecyclerView.LayoutManager
- RecyclerView.LayoutManager.Properties
- RecyclerView.LayoutParams
- RecyclerView.OnFlingListener
- RecyclerView.OnScrollListener
- RecyclerView.RecycledViewPool
- RecyclerView.Recycler
- RecyclerView.SimpleOnItemTouchListener
- RecyclerView.SmoothScroller
- RecyclerView.SmoothScroller.Action
- RecyclerView.State
- RecyclerView.ViewCacheExtension
- RecyclerView.ViewHolder
- RecyclerViewAccessibilityDelegate
- RecyclerViewAccessibilityDelegate.ItemDelegate
- SearchView
- ShareActionProvider
- SimpleItemAnimator
- SnapHelper
- StaggeredGridLayoutManager
- StaggeredGridLayoutManager.LayoutParams
- SwitchCompat
- ThemedSpinnerAdapter.Helper
- Toolbar
- Toolbar.LayoutParams
- Toolbar.SavedState
- TooltipCompat
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-04-11 UTC.