2016-07-11 153 views
2

Screenshot我想在我的應用程序中使用CalendarView。所有的月份都連續顯示。有人能幫助我如何僅顯示當前月份並選擇不同的月份嗎?Android日曆視圖。月連續顯示

<CalendarView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/calendarView" 
      android:layout_marginTop="80dp" 
      android:layout_marginLeft="20dp" /> 
+0

這是什麼意思「月份連續顯示」? –

+0

我在我的問題中添加了一個截圖。請關注該鏈接 –

+0

@fredrickcyril [檢查](https://github.com/gongmingqm10/awesome-calendar)。 – Nisarg

回答

1

我發現它是由CalendarView的高度引起的,如果設置了這樣android:layout_height="wrap_content"您的日曆將顯示幾個月,直到有可用的空間。

嘗試設置一個像200dp的高度,或者將其放置在高度爲線性/相對佈局中。

更新

<CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

enter image description here

<CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="200dp" /> 

enter image description here

這是使用wrap_content200dp或作爲高度之間的差值。

或者,您可以設置同一月的最小和最大日期,如果需要,可以以編程方式更改最小/最大值。

<CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:minDate="11/01/2016" 
     android:maxDate="11/30/2016"/> 

注意:這2個解決方法是Android L的,從M你不需要這個。

+0

此解決方案不起作用。 –

+0

對不起,但這個問題不是你的,你爲什麼說這不起作用?我嘗試這個,併爲我工作 –

+0

我也面臨這個問題,並試圖解決你的問題。它沒有工作 –

1

設置日曆視圖的最小日期和最大日期,以便僅顯示當前月份。

Calendar currentCalendarView = Calendar.getInstance(); 
Calendar calendar = currentCalendarView; 
calendar.set(Calendar.DAY_OF_MONTH,currentCalendarView.getActualMinimum(Calendar.DAY_OF_MONTH)); 
calendarView.setMinDate(calendar.getTimeInMillis()); 
calendar.set(Calendar.DAY_OF_MONTH, currentCalendarView.getActualMaximum(Calendar.DAY_OF_MONTH)); 
calendarView.setMaxDate(calendar.getTimeInMillis());