我有以下布局:
<ScrollView>
<RelativeLayout>
<RelativeLayout>
<View
android:id="@+id/vline"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/md_white_1000"/>
<ImageButton>...</ImageButton>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
当然,不同的布局在不同的屏幕上都有自己的内容和高度。
现在我想通过按ImageButton来平滑地滚动我的ScrollView,使得Views左上角位于特定屏幕的左上角。
我试过了:
ImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
scrollView.smoothScrollTo(0, vline.getTop());
}
});
和所有其他&#34; getY()&#34;方法,但没有人带来我想要的结果。它只是将我的所有内容全部滚动起来。
我刚刚开始使用Android,感谢您的帮助。
答案 0 :(得分:0)
以下是解决方案:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int statusbarHeight = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight()
- YOURVIEW.getHeight();
int[] position = new int[2];
vline.getLocationInWindow(position);
scrollView.smoothScrollBy(0, (position[1]-statusbarHeight));
}
});