我的活动中有一个RecyclerView
,其中显示了4种不同类型的卡片。其中一张卡片正在显示此库WeekView的日历自定义视图。一切都显示确定,直到我开始滚动我的视图,日历卡开始离开屏幕边界。自定义周视图似乎在工具栏图层上绘制,导致图像中显示上述效果
正如您所看到的,cardview滚动正确但自定义周视图位于工具栏图层上方。
在我的Adapter
我初始化WeekView
ViewHolder
calendarView = (WeekView) itemView.findViewById(R.id.todayView);
if (calendarView != null) {
initializeCalendarView(calendarView);
}
private void initializeCalendarView(WeekView mWeekView) {
mWeekView.setOnEventClickListener(this);
mWeekView.setMonthChangeListener(this);
mWeekView.setEventLongPressListener(this);
mWeekView.setEmptyViewLongPressListener(this);
setupDateTimeInterpreter(false, mWeekView);
mWeekView.goToToday();
mWeekView.setColumnGap((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, context.getResources().getDisplayMetrics()));
mWeekView.setTextSize((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12, context.getResources().getDisplayMetrics()));
mWeekView.setEventTextSize((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12, context.getResources().getDisplayMetrics()));
}
这是我xml
CardView
<android.support.v7.widget.CardView
android:id="@+id/doctorDashboardCalendar"
android:layout_width="match_parent"
android:layout_height="800dp"
android:layout_margin="@dimen/margin10"
app:cardCornerRadius="3dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:background="#e0e0e0">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/notes_icon_dark"
android:layout_margin="10dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/text18"
android:fontFamily="@string/font_name_2"
android:text="Calendar"/>
</LinearLayout>
<*************************.WeekView
android:id="@+id/todayView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="true"
app:eventTextColor="@android:color/white"
app:textSize="12sp"
app:hourHeight="30dp"
app:headerColumnPadding="4dp"
app:headerColumnTextColor="@color/toolbar_text"
app:headerRowPadding="6dp"
app:columnGap="4dp"
app:noOfVisibleDays="1"
app:headerRowBackgroundColor="@color/toolbar"
app:dayBackgroundColor="#05000000"
app:todayBackgroundColor="@color/white"
app:headerColumnBackground="#ffffffff"
app:todayHeaderTextColor="@color/accent"
app:showNowLine="true"
app:nowLineColor="@color/colorAccent"
app:enableScrolling="false"/>
</LinearLayout>
</android.support.v7.widget.CardView>
答案 0 :(得分:0)
将其添加到自定义视图中:
android:margin_top="?attr/actionBarSize"
这将使操作栏/工具栏的大小达到顶部,这将使滚动固定为正确的大小。
答案 1 :(得分:0)
我找到了解决方案。如果您在WeekView
中对上述格式的代码进行评论,则说明其正常
canvas.clipRect(left, top, width, heigh, Region.Op.REPLACE);