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
相关产品推荐
相关产品推荐

