- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 HorizontalScrollView 的自定义 View 。 ScrollView 的宽度是 match_parent,其 subview 的宽度最初是根据自定义 View 的属性值以编程方式设置的。在某些时候, ScrollView 的子级宽度会以编程方式更新(增加)。问题是,更新后,scrollTo方法仍然无法滚动到原始宽度值之上(scrollBy也是如此)。
封闭 View (自定义 View )的左右填充等于屏幕的一半(如果相关的话)。
示例:
相关代码:
自定义 View 初始化:
private void init(AttributeSet attrs, int defStyle) {
inflate(getContext(), R.layout.timeline_view, this);
// Load attributes
final TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.TimelineView, defStyle, 0);
m_timelineInitialLength = a.getDimension(R.styleable.TimelineView_timelineInitialLength, DEFAULT_LENGTH);
a.recycle();
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
LinearLayout timelineWidget = findViewById(R.id.timeline_widget);
int horizontalPadding = displayMetrics.widthPixels / 2;
timelineWidget.setPadding(horizontalPadding, 0, horizontalPadding, 0);
m_horizontalScrollView = findViewById(R.id.scroll_view);
m_horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
m_currentScrollX = m_horizontalScrollView.getScrollX();
}
});
m_currentScrollX = m_horizontalScrollView.getScrollX();
update(m_timelineInitialLength, m_timelineInitialStepWidth, m_currentScrollX);
}
Update和scrollTo(此方法也在初始化结束时调用。m_rulerView和m_timelineLayout是HorizontalScrollView的子级):
private void update(float timelineLength, float timelineStepWidth, int currentScrollX) {
m_rulerView = findViewById(R.id.ruler);
m_rulerView.setIndicator(null);
m_rulerView.getLayoutParams().width = (int) timelineLength;
m_rulerView.requestLayout();
m_timelineLayout = findViewById(R.id.timeline);
m_timelineLayout.getLayoutParams().width = (int) timelineLength;
m_timelineLayout.requestLayout();
m_horizontalScrollView.scrollTo(currentScrollX, 0);
}
最佳答案
问题似乎是滚动发生在子级被重绘之前,在调用 requestLayout 之前仅安排 View 的更新在将来的某个时刻执行(与 invalidate() 相同)。
我使用解决方法解决了这个问题,在一段时间后执行scrollTo:
new Handler().postDelayed(() -> ((Activity) getContext()).runOnUiThread(() -> m_horizontalScrollView.scrollTo(currentScrollX, 0)), 200);
我仍然愿意接受更好的解决方案。
关于java - HorizontalScrollView的scrollTo不会滚动到 View 的原始宽度之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112629/
我在 iPad 的 Objective-c 项目中有一个带有 UIWebView 的 ViewController。 当我添加 html(使用 loadHtmlString)时,我尝试保持它在 loa
好吧,我看不到了。我正在使用the scrollTo plugin并在我的网站中有一个scrollTo 函数。它有效,但现在突然不起作用...... 这是我的代码: $(document).ready
我真的需要帮助解决这个问题,我对 JS 的了解不是很好。所以,基本上我想在单击链接时滚动到该部分,但不是通过 (href="#target"),我想使用属性来完成此操作。另外,如果可能的话,我也想添加
无法对 Jquery ScrollTo 应用缓动方法: $("#scroller").scrollTo(target,1000,{axis:'x',easing:'linear'}); 这并不能缓解任
我尝试实现scrollTo函数,但问题是当我滚动时我希望滚动到的元素位于屏幕顶部而不是中间或其他地方。 JsFiddle 这是js函数 $(document).ready(function () {
这个想法是点击一个链接进入另一个页面(index.html),一旦你到达那里,立即进入一个 anchor div。我尝试通过触发事件来做到这一点,但没有成功。 scrollTo 在index.html
我正在开发一个网格,至少可以说,它的界面非常动态。 我想做的是关注 $this 元素,无论它在哪里,无论它是在点击时移动到页面顶部还是返回到网格中的原始位置。 发生的情况是,当单击一个元素时.....
我有一系列关于我刚刚完成开发的应用程序的部分。我正在使用 jQuery 的scrollTo 插件。过去它对我来说一直很有效。 应用程序应该执行以下操作: 加载所有部分,第一个部分立即展开,其他所有部分
这看起来很简单,但我似乎无法弄清楚。我想更改使用 JQuery 的 ScrollTo 插件滚动到的元素的背景颜色。我正在使用 onAfter 设置。这就是我所拥有的: $("#nav-inpage")
我不太清楚scrollTo()插件函数。 我想做的是水平移动到特定目标(就像一个场景到另一个场景)。这是我的一些代码: > NatureVille 它根本不起作用。有人可以尽快简化或解释这个
我正在尝试找出一种使用 scrollTo() 的方法单击链接后在新页面上运行。不幸的是,使用 window.onload在我的情况下不起作用,因为我只想在从特定链接打开页面时滚动。 我正在尝试让主页链
我有一个问题,我想在页面渲染后通过调用 window.scrollTo() 将页面滚动到特定元素。但不起作用。有什么限制吗? var step = Math.round(distance / 25);
我想使用 scrollTo,但是当单击导航栏上的链接时,它会滚动到右侧的 div,但只是稍微远一点。我认为它与顶部的固定导航栏有关。我该如何抵消它? $(document).ready(func
我有一个 ul 列表,我正在尝试使用最新版本的 JQuery ScrollTo (v. 1.4.11) 使其向下滚动到其中 li 的高度(以创建垂直 slider )。 它正在上下滚动,几乎按预期工作
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 2 年前。 Improve this ques
我使用 scrollto 和 scrollspy 建立了一个单页网站。一旦导航栏固定在顶部,该页面就可以很好地工作。但是,如果您在导航栏固定到顶部之前单击任何链接,所有链接都会关闭。而且他们离开的高度
如何在多个 div 上使用 jquery-scrollTo。假设我有以下 div Home (current) Grid System Tooltips Tables
我为 WordPress 网站创建的导航栏出现问题。有些链接旨在向下滚动到主页上的不同位置,有些链接是指向网站其他位置的外部链接。像这样的事情: Link 1
我是一名销售人员开发人员,我想通过上下滑动来上下滚动,这很容易,我用它完成了它,它在所有浏览器和所有设备浏览器(如(iPhone/Pad/Andy))上都能完美运行,但在浏览器中,我们有当我在 sal
我设置了这个简单的联系表单,由于此时我没有开发时间,所以我使用 jQuery 验证而不是 AJAX 来设置它。这很好用。 但现在我想在表单出现错误时让页面向下滚动。我已经下载了 jquery.scro
我是一名优秀的程序员,十分优秀!