SwipeRefreshLayout使用set变量作为结束动画。在某些用例中,我需要将其更改为0,但我无法弄清楚如何。这是变量:
;WITH CTE AS
(
SELECT VisitID, UserID, UserName, VisitDate,
COUNT(2) OVER(PARTITION BY UserID) AS countVal
From Visit
WHERE VisitDate BETWEEN '04/01/2016' AND '04/03/2016'
)
SELECT *
FROM CTE
WHERE countVal>=2
非常感谢任何帮助。
答案 0 :(得分:0)
您需要访问私有字段,并使用Java反射API将值更新为0。由于该字段是最终字段,因此您需要更新其修饰符以删除此信息,如this post中所述。
Field duration = SwipeRefreshLayout.class.getDeclaredField("SCALE_DOWN_DURATION");
duration.setAccessible(true); // counteract private modifier
Field mods = Field.class.getDeclaredField("modifiers"); // retrieve modifiers for the constant field
mods.setAccessible(true);
int finalValue = mods.getModifiers() & ~Modifier.FINAL; // flip final value, allowing mutation of the field
mods.setInt(mods, finalValue);
duration.setInt(hack, 0); // set value
不言而喻,但由于这是SwipeRefreshLayout的一个实现细节,因此无法确保将来不会在没有警告的情况下中断。如果你需要这样的几个修改,那么分类和维护你自己的版本可能是一个更好的解决方案。