当嵌套在android中的scrollview中时,calendarview停止滚动

当嵌套在android中的scrollview中时,calendarview停止滚动,第1张

概述我在ScrollView中嵌套了calendarview.当视图高度增加时,我的问题就开始了.我可以垂直滚动日历月,但当滚动视图滚动条出现时,它不会滚动日历.整个视图向上或向下滚动而不是滚动日历.<?xmlversion="1.0"encoding="utf-8"?><ScrollViewxmlns:android="http://schemas.android.c

我在ScrollVIEw中嵌套了calendarvIEw.当视图高度增加时,我的问题就开始了.
我可以垂直滚动日历月,但当滚动视图滚动条出现时,它不会滚动日历.整个视图向上或向下滚动而不是滚动日历.

<?xml version="1.0" enCoding="utf-8"?><ScrollVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content"     androID:fillVIEwport="true"><linearLayout androID:orIEntation="vertical" androID:ID="@+ID/ReminderLayout"     androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" >        <linearLayout            androID:layout_wIDth="fill_parent"            androID:layout_height="wrap_content"            androID:orIEntation="vertical" >            <EditText                androID:ID="@+ID/Taskname"                androID:layout_wIDth="fill_parent"                androID:layout_height="wrap_content"                androID:inputType="textCapWords"                androID:singleline="true"                androID:textSize="26.0sp" />            <VIEw                androID:ID="@+ID/seperator"                androID:layout_wIDth="fill_parent"                androID:layout_height="1dip" />            <TextVIEw                androID:ID="@+ID/lblNotes"                androID:layout_wIDth="fill_parent"                androID:layout_height="wrap_content"                androID:text="Notes" />            <EditText                androID:ID="@+ID/TaskNotes"                androID:layout_wIDth="fill_parent"                androID:layout_height="wrap_content"                androID:inputType="textMultiline"                androID:textSize="26.0sp" />            <VIEw                androID:ID="@+ID/seperator"                androID:layout_wIDth="fill_parent"                androID:layout_height="1dip" />            <TextVIEw                androID:ID="@+ID/lblReminder"                androID:layout_wIDth="fill_parent"                androID:layout_height="wrap_content"                androID:text="Reminder" />        </linearLayout>        <linearLayout androID:orIEntation="horizontal"             androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content">"            <CalendarVIEw                androID:ID="@+ID/calendarReminder"                androID:layout_wIDth="fill_parent"                androID:layout_height="250dp"                 androID:scrollbars="vertical"                androID:isScrollContainer="true" />        </linearLayout>        <linearLayout            androID:layout_wIDth="fill_parent"           androID:layout_height="wrap_content"            androID:orIEntation="horizontal"            >            <TimePicker                androID:ID="@+ID/timePickerReminder"                androID:layout_wIDth="fill_parent"                androID:layout_height="match_parent"                androID:gravity="center" />        </linearLayout>        <linearLayout androID:orIEntation="vertical"             androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" >            <VIEw androID:ID="@+ID/seperator" androID:layout_wIDth="fill_parent" androID:layout_height="1dip"/>            <TextVIEw androID:ID="@+ID/ReminderTime" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content"                 androID:text="On Time" androID:paddingleft="20dip"/>            <VIEw androID:ID="@+ID/seperator" androID:layout_wIDth="fill_parent" androID:layout_height="1dip"/>            <TextVIEw androID:ID="@+ID/Recurring" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content"                androID:text="Only Once" androID:paddingleft="20dip"/>        </linearLayout> </linearLayout></ScrollVIEw>

解决方法:

我在这里找到了这个问题的答案:
https://stackoverflow.com/a/9687545

基本上,您需要实现自定义CalendarVIEw并覆盖onIntercepttouchEvent方法.
我做了如下:

package com.example.app.vIEws;public class CalendarVIEwScrollable extends CalendarVIEw {    public CalendarVIEwScrollable(Context context) {        super(context);    }    public CalendarVIEwScrollable(Context context, AttributeSet attrs) {        super(context, attrs);    }    public CalendarVIEwScrollable(Context context, AttributeSet attrs,            int defStyle) {        super(context, attrs, defStyle);    }    @OverrIDe    public boolean onIntercepttouchEvent(MotionEvent ev)    {        if (ev.getActionMasked() == MotionEvent.ACTION_DOWN)        {            VIEwParent p = getParent();            if (p != null)                p.requestdisallowIntercepttouchEvent(true);        }        return false;    }}

然后在XML布局文件中使用此视图:

<com.example.app.vIEws.CalendarVIEwScrollable    androID:ID="@+ID/datePicker1"    androID:layout_wIDth="400dp"    androID:layout_height="400dp" />
总结

以上是内存溢出为你收集整理的当嵌套在android中的scrollview中时,calendarview停止滚动全部内容,希望文章能够帮你解决当嵌套在android中的scrollview中时,calendarview停止滚动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存