Bip*_*lab 3 android android-layout android-scrollview
我有一个滚动视图,其中我有几个相对布局.并且相对布局有两个按钮动态添加到它.如下所示
滚动视图
_____________________
| ________________ |
| |Relative Layout| |
| | |Buttons| | |
| |_______________|
| |
| ________________ |
| |Relative Layout| |
| | |Buttons| | |
| |_______________|
| |
| |Relative Layout| |
| | |Buttons| | |
| |_______________|
| |
| ________________ |
| |Relative Layout| |
| | |Buttons| | |
| |_______________|
| |
| |Relative Layout| |
| | |Buttons| | |
| |
|_____________________|
Run Code Online (Sandbox Code Playgroud)
是否可以在按钮单击时动态滚动到特定的相对布局.我已经在下面尝试了它不起作用
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());
}
});
Run Code Online (Sandbox Code Playgroud)
滚动到也不工作
编辑:最初我在相对布局中只有一组按钮.然后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());
}});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |