- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
此外,我为 lib here 打开了一个问题.
我需要实现范围日期选择,所以我发现这个库适合 link .
但这真的让我很不安。行为区间选择问题:
案例:
1) 因此,会说您需要选择从 1.09 到 5.09 的日期(没有问题),然后尝试在选择中单击第一个 (1.09) 或最后一个 (05.09) 日期。所有选定的日期都未选定(这是正确的行为)。
视频:https://youtu.be/bprcy1IBpy4
2) 因此,会说您需要选择 1.09 到 03.09 之间相差一天的日期(没有问题),然后尝试单击选择中的第一个 (1.09) 或最后一个 (3.09) 日期。您将再次获得选择范围(但没有选择日期)。示例:单击 1.09 而不是 3.09,然后再次单击 03.09,现在您会看到从 1.09 到 2.09 的选择范围(这确实是意想不到的结果)。
视频:https://youtu.be/rN70_HTbvUA
我尝试克隆 matirial-calendarview 项目并管理它,但我不太了解它是如何工作的。
如果您有任何问题,请随时提出。
所以问题:如何管理这个库以呈现一种稳定的行为?我更喜欢这样,如果我选择了日期范围并单击选择中的第一天或最后一天,那么所有日期都会取消选择。
最佳答案
问题出在这个代码块(link to source file in github)
当我们在日历中选择两天时,这意味着我们正在选择日期范围的开始日期和结束日期。执行用于范围选择的代码块
} else if (adapter.getSelectedDates().size() == 2) {
final List<CalendarDay> dates = adapter.getSelectedDates();
if (dates.get(0).isAfter(dates.get(1))) {
dispatchOnRangeSelected(dates.get(1), dates.get(0));
} else {
dispatchOnRangeSelected(dates.get(0), dates.get(1));
}
}
当我们选择一个范围,比如由2、3、4、5天组成的范围,那么选中天的列表大小为4。当我们点击日期取消选择范围时,那么这一天就是在清除列表之前从所选日期列表中删除,现在列表包含 3 个元素。结果这个代码块被执行,这意味着清除选定的范围
if (adapter.getSelectedDates().size() > 2) {
adapter.clearSelections();
adapter.setDateSelected(date, nowSelected); // re-set because adapter has been cleared
dispatchOnDateSelected(date, nowSelected);
如果范围包含 4 天或更多天,则一切正常。当范围包含 2 天或 3 天时,则在“取消选择范围”时,所选日期的大小分别变为 1 或 2(大小 - 1,因为在取消选择范围之前删除了在所选范围内单击的日期),并且范围未清除,因为条件
if (adapter.getSelectedDates().size() > 2) {
没有满足。要解决此问题,您可以检查选择或取消选择是否正在发生并执行正确的逻辑。我的快速修复是
case SELECTION_MODE_RANGE: {
adapter.setDateSelected(date, nowSelected);
if (adapter.getSelectedDates().size() > 2) {
adapter.clearSelections();
adapter.setDateSelected(date, nowSelected); // re-set because adapter has been cleared
dispatchOnDateSelected(date, nowSelected);
} else if (adapter.getSelectedDates().size() == 2) {
final List<CalendarDay> dates = adapter.getSelectedDates();
if (nowSelected) { // when selecting
if (dates.get(0).isAfter(dates.get(1))) {
dispatchOnRangeSelected(dates.get(1), dates.get(0));
} else {
dispatchOnRangeSelected(dates.get(0), dates.get(1));
}
} else { // in case range initially consisted of 3 dates, and now deselection happens
adapter.clearSelections();
adapter.setDateSelected(date, nowSelected); // re-set because adapter has been cleared
dispatchOnDateSelected(date, nowSelected);
}
} else {
if (nowSelected) {
adapter.setDateSelected(date, nowSelected);
dispatchOnDateSelected(date, nowSelected);
} else { // in case range initially consisted of 2 dates, and now deselection happens
adapter.clearSelections();
adapter.setDateSelected(date, nowSelected); // re-set because adapter has been cleared
dispatchOnDateSelected(date, nowSelected);
}
}
}
break;
我从调试器的输出中假设,nowSelected 变量告诉我们是选择还是取消选择。
关于java - 范围选择的行为差异( Material 日历 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46037166/
是否有某种方法可以使用 JPA 或 Hibernate Crtiteria API 来表示这种 SQL?或者我应该将其作为 native 执行吗? SELECT A.X FROM (SELECT X,
在查询中, select id,name,feature,marks from (....) 我想删除其 id 在另一个 select 语句中存在的那些。 从 (...) 中选择 id 我是 sql
我想响应用户在 select 元素中选择一个项目。然而这个 jQuery: $('#platypusDropDown').select(function () { alert('You sel
这个问题在这里已经有了答案: SQL select only rows with max value on a column [duplicate] (27 个回答) 关闭8年前。 我正在学习 SQL
This question already has answers here: “Notice: Undefined variable”, “Notice: Undefined index”, and
我在 php 脚本中调用 SQL。有时“DE”中没有值,如果是这种情况我想从“EN”中获取值 应该是这样的,但不是这样的 IF (EXISTS (SELECT epf_application_deta
这可能是一个奇怪的问题,但不知道如何研究它。执行以下查询时: SELECT Foo.col1, Foo.col2, Foo.col3 FROM Foo INNER JOIN Bar ON
如何在使用 Camera.DestinationType.FILE_URI. 时在 phonegap camera API 中同时选择或拾取多个图像我能够一次只选择一张图像。我可以使用 this 在
这是一个纯粹的学术问题。这两个陈述实际上是否相同? IF EXISTS (SELECT TOP 1 1 FROM Table1) SELECT 1 ELSE SELECT 0 相对 IF EXIS
我使用 JSoup 来解析 HTML 响应。我有多个 Div 标签。我必须根据 ID 选择 Div 标签。 我的伪代码是这样的 Document divTag = Jsoup.connect(link
我正在处理一个具有多个选择框的表单。当用户从 selectbox1 中选择一个选项时,我需要 selectbox2 active 的另一个值。同样,当他选择 selectbox2 的另一个值时,我需要
Acme Inc. Christa Woods Charlotte Freeman Jeffrey Walton Ella Hubbard Se
我有一个login.html其中form定义如下: First Initial Plus Last Name : 我的do_authorize如下: "; pri
$.get( 'http://www.ufilme.ro/api/load/maron_online/470', function(data
我有一个下拉列表“磅”、“克”、“千克”和“盎司”。我想要这样一种情况,当我选择 gram 来执行一个函数时,当我在输入字段中输入一个值时,当我选择 pounds 时,我想要另一个函数来执行时我在输入
我有一个 GLSL 着色器,它从输入纹理的 channel 之一(例如 R)读取,然后写入输出纹理中的同一 channel 。该 channel 必须由用户选择。 我现在能想到的就是使用一个 int
我想根据下拉列表中的选定值生成输入文本框。 Options 2 3 4 5 就在这个选择框之后,一些输入字段应该按照选定的数字出现。 最佳答案 我建议您使用响应式(Reac
我是 SQL 新手,我想问一下如何根据首选项和分组选择条目。 +----------+----------+------+ | ENTRY_ID | ROUTE_ID | TYPE | +------
我有以下表结构: CREATE TABLE [dbo].[UTS_USERCLIENT_MAPPING_USER_LIST] ( [MAPPING_ID] [int] IDENTITY(1,1
我在移除不必要的床单时遇到了问题。我查看了不同的论坛并将不同的解决方案混合在一起。 此宏删除工作表(第一张工作表除外)。 Sub wrong() Dim sht As Object Applicati
我是一名优秀的程序员,十分优秀!