You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Material Calendar View高度适配问题:占用屏幕3/4且存在内边距

解决MaterialCalendarView日期磁贴与控件间的内边距问题

我来帮你搞定这个恼人的内边距问题~针对你自定义高度后仍存在空隙的情况,可以试试下面这几个方案:

1. 直接覆盖默认内边距

MaterialCalendarView本身自带默认内边距,你可以在XML布局里直接设置android:padding="0dp",或者精准控制上下方向的内边距:

<com.prolificinteractive.materialcalendarview.MaterialCalendarView
    android:id="@+id/calendarView"
    android:layout_width="match_parent"
    android:layout_height="3/4screen"
    android:padding="0dp"
    <!-- 也可以单独设置上下内边距:android:paddingTop="0dp" android:paddingBottom="0dp" -->
    ... />

2. 通过自定义样式修改内边距参数

如果XML直接设置padding没生效,大概率是控件的默认样式在起作用。你可以自定义样式重写calendarContentPadding属性:

<style name="CustomCalendarStyle" parent="Widget.MaterialCalendarView">
    <item name="calendarContentPadding">0dp</item>
</style>

然后在布局里引用这个自定义样式:

<com.prolificinteractive.materialcalendarview.MaterialCalendarView
    ...
    style="@style/CustomCalendarStyle" />

3. 代码动态调整内边距

要是上面的方法都没效果,试试在代码里动态移除内边距:

MaterialCalendarView calendarView = findViewById(R.id.calendarView);
// 移除所有方向内边距
calendarView.setPadding(0, 0, 0, 0);
// 或者只移除上下内边距,保留左右
// calendarView.setPadding(calendarView.getPaddingLeft(), 0, calendarView.getPaddingRight(), 0);

4. 检查自定义日期磁贴的布局

如果你用了DayViewDecorator或者自定义了日期磁贴的布局,别忘了检查这个子布局里有没有设置额外的margin或padding——有时候看起来是CalendarView的内边距,实际是磁贴自己加的空隙。


内容的提问来源于stack exchange,提问作者Mano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:03:13