【问题标题】:Getting child view reaches to top in ScrollView让子视图在 ScrollView 中达到顶部
【发布时间】:2016-07-28 03:19:44
【问题描述】:

我正在开发Android App,我的要求是RelativeLayout 的子级,它是ScrollView 的子级,当RelativeLayout 的子级在滚动时到达顶部时我如何得到?

我的代码 OnScrollChnnged 是

final LinearLayout shareAndFuirteLayOut = (LinearLayout) findViewById(R.id.shareAndFuirteLayOut);
    final ScrollView mainScrollView = (ScrollView) findViewById(R.id.mainScrollView);

    final ViewTreeObserver.OnScrollChangedListener onScrollChangedListener = new ViewTreeObserver.OnScrollChangedListener() {

        @Override
        public void onScrollChanged() {


        }
    };

    mainScrollView.setOnTouchListener(new View.OnTouchListener() {
        private ViewTreeObserver observer;

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            if (observer == null) {
                observer = mainScrollView.getViewTreeObserver();
                observer.addOnScrollChangedListener(onScrollChangedListener);
            } else if (!observer.isAlive()) {
                observer.removeOnScrollChangedListener(onScrollChangedListener);
                observer = mainScrollView.getViewTreeObserver();
                observer.addOnScrollChangedListener(onScrollChangedListener);
            }
            return false;
        }
    });

【问题讨论】:

  • 贴出你试过的代码
  • 您应该能够使用 ScrollView.getScrollY() 和 RelativeLayout.GetY() 的组合来实现

标签: android android-layout android-scrollview vertical-scrolling


【解决方案1】:

详细@Nanoc 注释,代码如下

            if (nestedScrollView.getScrollY() > View.getY()) {
                Log.d(TAG, "View visible");
                stickyHeaderLayout.setVisibility(View.VISIBLE);
            } else {
                stickyHeaderLayout.setVisibility(View.GONE);
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2015-12-09
    • 2019-07-03
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多