android - 仅在 Caldroid 中显示当前月份的日期

标签 android caldroid

我正在为我的应用程序使用 Caldroid 库,但我遇到了一个问题。

我只希望当月的日期显示在我的日历上。

我查看了 Caldroid 文档,但找不到任何内容。

我知道我可以设置日历的最大日期,但我找不到任何设置每个月的最大/最小值的东西。

最佳答案

希望这对你有帮助:)

我遇到了同样的问题并做了类似的事情。

在 drawable 中创建新的选择器,例如 calendar_cell_text_color.xml。在这个文件中你放这样的东西。

<!-- Caldroid days from prev and next month -->
<item android:color="@color/white" caldroid:state_date_prev_next_month="true"/>

<!-- Caldroid days from current month -->
<item android:color="@color/black" />

现在,您必须更改 CaldroidDefaultCell 的样式。

在文件 style.xml 中添加以下行。

 <!-- My Caldroid theme. -->
<style name="MyCaldroid" parent="CaldroidDefault">    
     <!--If you use compact view in Caldroid -->
    <item name="styleCaldroidNormalCell">@style/CaldroidCell</item>  

    <!-- If you use square (default) view in Caldroid-->
     <item name="styleCaldroidSquareCell">@style/CaldroidCell</item>  
</style>

 <style name="CaldroidCell" parent="CaldroidDefaultCell">        
    <item name="android:textColor">@drawable/calendar_cell_text_color</item>        
</style>

现在您需要在初始化caldroid 后添加一行以使用您的主题。

caldroidFragment = new CaldroidFragment();
caldroidFragment.setThemeResource(R.style.MyCaldroid);

现在其他月份的日期将不可见,但您仍然可以点击它们。我现在正在研究如何禁用它们。

编辑:

如果你想禁用日期

//date argument is current month visible on screen
public void disablePrevNextMonthDay(Date date){

    disableDates.setTime(date); // disableDates is a Calendar object
    disableDates.set(Calendar.DAY_OF_MONTH, 1); // 1st day of current month

    caldroidFragment.setMinDate(disableDates.getTime());
    int maxDay = disableDates.getActualMaximum(Calendar.DAY_OF_MONTH);
    disableDates.set(Calendar.DAY_OF_MONTH, maxDay);
    caldroidFragment.setMaxDate(disableDates.getTime()); //last day of current month 
}

然后您在 caldroid 的 onChangeMonth() 方法中调用此方法。

如果您在类似于 calendar_cell_text_color.xml 的文件中添加选择器 state_date_disabled 并将背景设置为白色,就像前面示例中的文本颜色一样,您将看到不可见的非点击日期.

关于android - 仅在 Caldroid 中显示当前月份的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32038877/

相关文章:

java - 是否可以制作一个在拍照时录制音频的 Android 应用程序?

android - 错误 :Execution failed for task ':app:validateExternalOverrideSigning'

android - 如何在android中的Caldroid库中更改月份单元格和工作日单元格的背景

android - 强制字体大小

android - 上传前调整图片大小(我上传的 take/pick 没问题)

java - 从服务访问 View

java - Android http请求POST

android - Caldroid 不刷新

android - Caldroid 空对象引用