ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 在scrollView中的相对布局之间动态滚动

2019-08-31 06:24:04  阅读:329  来源: 互联网

标签:android android-layout android-scrollview


我有一个滚动视图,其中我有几个相对布局.并且相对布局有两个按钮动态添加到它.如下所示

滚动视图

  _____________________
 |   ________________  |
 |  |Relative Layout|  |
 |  |   |Buttons|   |  |
 |  |_______________|               
 |                     |
 |   ________________  |
 |  |Relative Layout|  |
 |  |   |Buttons|   |  |
 |  |_______________|                 
 |                     |
 |  |Relative Layout|  |
 |  |   |Buttons|   |  |
 |  |_______________|               
 |                     |
 |   ________________  |
 |  |Relative Layout|  |
 |  |   |Buttons|   |  |
 |  |_______________|                  
 |                     |
 |  |Relative Layout|  |
 |  |   |Buttons|   |  |
 |                     |
 |_____________________|

是否可以在按钮单击时动态滚动到特定的相对布局.
我已经在下面尝试了它不起作用

if (count == 1) {
    final int k = id;
mScrollView.getViewTreeObserver().addOnGlobalLayoutListener(
        new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
                public void onGlobalLayout() {
            // TODO Auto-generated
        // method stub
        mScrollView.post(new Runnable() {
                @Override
            public void run() {
            Button btn = (Button) findViewById(k);
            mScrollView.smoothScrollTo(0,btn.getTop());
                }
        });

滚动到也不工作

编辑:
最初我在相对布局中只有一组按钮.然后smoothScrollTo按预期工作.后来我把结构改成了上面的风格.

解决方法:

@Daniel Bo的提示是正确的.

view.getTop()将给出相对于其直接父级的位置.

以下是实施.

ScrollView mScrollView = (ScrollView) findViewById(R.id.scroll_view);
mScrollView.post(new Runnable() {
    public void run() { 
        Button btn = (Button) findViewById(k); 
        ViewGroup vg =(ViewGroup)btn.getParent();
        mScrollView.smoothScrollTo(0,vg.getTop());
     }});
}

标签:android,android-layout,android-scrollview
来源: https://codeday.me/bug/20190831/1773700.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有