Android 開(kāi)源 日歷 Calendar 仿小米

原文地址:https://github.com/MagicMashRoom/SuperCalendar
簡(jiǎn)介 由于項(xiàng)目的需求,研究了眾多日歷軟件。本軟件是一款高仿小米的自定義日歷 > 控件珊燎,周月視圖平滑滾動(dòng),平滑切換陈哑,可以在 xml 文件中進(jìn)行屬性的配置定制搜吧,加入你自己的 RecyclerView 后,實(shí)現(xiàn)日歷與列表的無(wú)縫連接坦胶。

圖片.png
  • compile 'com.github.MagicMashRoom:SuperCalendar:v1.1.0'

  • Include MonthPager in your layout XML. MonthPager必須和下方的RecyclerView包裹在同一個(gè)CoordinatorLayout內(nèi).且RecyclerView的layout_behavior為com.ldf.calendar.behavior.RecyclerViewBehavior

<android.support.design.widget.CoordinatorLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <com.ldf.calendar.view.MonthPager
            android:id="@+id/calendar_view"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:background="#fff">
        </com.ldf.calendar.view.MonthPager>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_behavior="com.ldf.calendar.behavior.RecyclerViewBehavior"
            android:background="#c2c2c2"
            android:layout_gravity="bottom"/>

    </android.support.design.widget.CoordinatorLayout>
    
  • 目前來(lái)看 相比于Dialog選擇日歷 我的控件更適合于Activity/Fragment在Activity的onCreate 或者Fragment的onCreateView 你需要實(shí)現(xiàn)這兩個(gè)方法來(lái)啟動(dòng)日歷并裝填進(jìn)數(shù)據(jù)
@Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_syllabus);
        initCalendarView();
    }
    
    private void initCalendarView() {
        initListener();
        calendarAdapter = new CalendarViewAdapter(context ,
                onSelectDateListener ,
                Calendar.MONTH_TYPE);
        initMarkData();
        initMonthPager();
    } 
  • 使用此方法回調(diào)日歷點(diǎn)擊事件
private void initListener() {
        onSelectDateListener = new OnSelectDateListener() {
            @Override
            public void onSelectDate(CalendarDate date) {
                refreshClickDate(date);
            }

            @Override
            public void onSelectOtherMonth(int offset) {
                monthPager.setCurrentItem(mCurrentPage + offset);
            }
        };
    }
  • 使用此方法初始化日歷標(biāo)記數(shù)據(jù)
private void initMarkData() {
       HashMap markData = new HashMap<>();
       markData.put("2017-8-9" , "1");
       markData.put("2017-7-9" , "0");
       markData.put("2017-6-9" , "1");
       markData.put("2017-6-10" , "0");
       calendarAdapter.setMarkData(markData);
   }

使用此方法給MonthPager添加上相關(guān)監(jiān)聽(tīng)

monthPager.addOnPageChangeListener(new MonthPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                mCurrentPage = position;
                currentCalendars = calendarAdapter.getAllItems();
                if(currentCalendars.get(position % currentCalendars.size()) instanceof Calendar){
                    //you code
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末透典,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子顿苇,更是在濱河造成了極大的恐慌峭咒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纪岁,死亡現(xiàn)場(chǎng)離奇詭異凑队,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)幔翰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)漩氨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人遗增,你說(shuō)我怎么就攤上這事叫惊÷炔模” “怎么了高蜂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)啄枕。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蚓耽,這世上最難降的妖魔是什么渠牲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮步悠,結(jié)果婚禮上签杈,老公的妹妹穿的比我還像新娘。我一直安慰自己鼎兽,他們只是感情好答姥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著谚咬,像睡著了一般鹦付。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上择卦,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天敲长,我揣著相機(jī)與錄音,去河邊找鬼秉继。 笑死祈噪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尚辑。 我是一名探鬼主播辑鲤,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼杠茬!你這毒婦竟也來(lái)了月褥?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤澈蝙,失蹤者是張志新(化名)和其女友劉穎吓坚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體灯荧,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡礁击,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逗载。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哆窿。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖厉斟,靈堂內(nèi)的尸體忽然破棺而出挚躯,到底是詐尸還是另有隱情,我是刑警寧澤擦秽,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布码荔,位于F島的核電站漩勤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缩搅。R本人自食惡果不足惜越败,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硼瓣。 院中可真熱鬧究飞,春花似錦、人聲如沸堂鲤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘟栖。三九已至葵擎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間慢宗,已是汗流浹背坪蚁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镜沽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓贱田,卻偏偏與公主長(zhǎng)得像缅茉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子男摧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容