CalendarView icon indicating copy to clipboard operation
CalendarView copied to clipboard

3.5.5有个高度的问题

Open TopTime1 opened this issue 6 years ago • 14 comments

CalendarLayout设置默认shrink,展开日历后,底下列表显示不全,请问怎么解决? <com.haibin.calendarview.CalendarLayout android:id="@+id/schedule_calendarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:calendar_show_mode="both_month_week_view" app:calendar_content_view_id="@+id/schedule_calendar_content_view" app:default_status="shrink" app:gesture_mode="disabled">

            <com.haibin.calendarview.CalendarView
                android:id="@+id/schedule_calendarView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                app:current_day_lunar_text_color="@color/gold"
                app:current_day_text_color="@color/gold"
                app:current_month_lunar_text_color="@color/gray_dark"
                app:current_month_text_color="@color/gray_dark"
                app:day_text_size="@dimen/text_size_14"
                app:lunar_text_size="@dimen/text_size_10"
                app:month_view="com.zwwl.dyw.teacher.view.calendar.CustomMonthView"
                app:month_view_show_mode="mode_only_current"
                app:scheme_lunar_text_color="@color/gray_dark"
                app:scheme_text_color="@color/gray_dark"
                app:scheme_theme_color="@color/gray_dark"
                app:selected_lunar_text_color="@color/white"
                app:selected_text_color="@color/white"
                app:selected_theme_color="@color/gold"
                app:week_background="@color/body_bg"
                app:week_line_background="@color/gray_line"
                app:week_start_with="sun"
                app:week_text_color="@color/gray_dark"
                app:week_view="com.zwwl.dyw.teacher.view.calendar.CustomWeekView" />

            <LinearLayout
                android:id="@+id/schedule_calendar_content_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:descendantFocusability="blocksDescendants"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="1dp"
                        android:layout_weight="1"
                        android:background="@color/f0" />

                    <TextView
                        android:id="@+id/schedule_open_btn"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:background="@drawable/calendar_btn_bg"
                        android:padding="5dp"
                        android:text="展开日历"
                        android:textColor="@color/desk_function_color" />

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="1dp"
                        android:layout_weight="1"
                        android:background="@color/f0" />
                </LinearLayout>

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/schedule_recyclerView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </com.haibin.calendarview.CalendarLayout>

TopTime1 avatar Mar 12 '19 06:03 TopTime1

用法不对,CalendarLayout最好只能嵌套2个子View,如果要多嵌套, RecyclerView 放 LinearLayout里面,LinearLayout实现CalendarScrollView接口接口

huanghaibin-dev avatar Mar 12 '19 06:03 huanghaibin-dev

        <com.haibin.calendarview.CalendarLayout
            android:id="@+id/schedule_calendarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:calendar_show_mode="both_month_week_view"
            app:calendar_content_view_id="@+id/schedule_recyclerView"
            app:default_status="shrink"
            app:gesture_mode="disabled">

            <com.haibin.calendarview.CalendarView
                android:id="@+id/schedule_calendarView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                app:current_day_lunar_text_color="@color/gold"
                app:current_day_text_color="@color/gold"
                app:current_month_lunar_text_color="@color/gray_dark"
                app:current_month_text_color="@color/gray_dark"
                app:day_text_size="@dimen/text_size_14"
                app:lunar_text_size="@dimen/text_size_10"
                app:month_view="com.zwwl.dyw.teacher.view.calendar.CustomMonthView"
                app:month_view_show_mode="mode_only_current"
                app:scheme_lunar_text_color="@color/gray_dark"
                app:scheme_text_color="@color/gray_dark"
                app:scheme_theme_color="@color/gray_dark"
                app:selected_lunar_text_color="@color/white"
                app:selected_text_color="@color/white"
                app:selected_theme_color="@color/gold"
                app:week_background="@color/body_bg"
                app:week_line_background="@color/gray_line"
                app:week_start_with="sun"
                app:week_text_color="@color/gray_dark"
                app:week_view="com.zwwl.dyw.teacher.view.calendar.CustomWeekView" />

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/schedule_recyclerView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
        </com.haibin.calendarview.CalendarLayout>

改成这样依然显示不全

TopTime1 avatar Mar 12 '19 06:03 TopTime1

明白了,是这个app:gesture_mode="disabled"的问题,去掉就可以

huanghaibin-dev avatar Mar 12 '19 07:03 huanghaibin-dev

我们的需求是点击展开就展开日历,所以我就禁用了手势,还有个问题,有时候周视图底下会多出一行空白的高度,不知道什么原因?

TopTime1 avatar Mar 12 '19 07:03 TopTime1

可以截个图看看吗

huanghaibin-dev avatar Mar 12 '19 07:03 huanghaibin-dev

image

TopTime1 avatar Mar 12 '19 07:03 TopTime1

如何触发的?你开启显示布局测量,看看空白是不是属于日历的一部分?

huanghaibin-dev avatar Mar 12 '19 07:03 huanghaibin-dev

是的,点击空白区域就收上去了

TopTime1 avatar Mar 12 '19 07:03 TopTime1

CalendarLayout只嵌套一个RecyclerView也会吗?

huanghaibin-dev avatar Mar 12 '19 07:03 huanghaibin-dev

对的

TopTime1 avatar Mar 12 '19 07:03 TopTime1

跟最外层嵌套NestedScrollView有关系吗?

TopTime1 avatar Mar 13 '19 01:03 TopTime1

有的,要用CalendarLayout,外部不能使用NestedScrollView,否则CalendarLayout的高度就是wrap_content了,这时候你需要自己计算CalendarLayout的高度

huanghaibin-dev avatar Mar 13 '19 02:03 huanghaibin-dev

我也再看看,先改回3.4.8了,这个还能凑活用,只是底部会有空白

TopTime1 avatar Mar 13 '19 03:03 TopTime1

我也再看看,先改回3.4.8了,这个还能凑活用,只是底部会有空白

这个显示不全问题最后解决了吗?

chenyabingsuny avatar Nov 04 '20 09:11 chenyabingsuny