【发布时间】:2015-09-10 16:37:36
【问题描述】:
我有一个动态添加的视图。有时,视图仅部分可见,因为它的底部不在屏幕上。在这种情况下,我想向上移动视图。但是,我不知道如何检测它是否在屏幕外以及多少。
编辑:这个问题的背景是我有一个编辑文本,我想在它旁边显示一个自定义软键盘。这是我用来移动自定义键盘的代码。
public void moveKeyboardNextToView(View view) {
int[] location = new int[]{0, 0};
view.getLocationInWindow(location);
Rect r = new Rect();
view.getGlobalVisibleRect(r);
int height = r.bottom - r.top;
int newTop = r.bottom - view.getHeight() / 2 - this.mKeyboardView.getHeight() / 2;
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) this.mKeyboardView.getLayoutParams();
params.setMargins(0, newTop, 0, 0);
this.mKeyboardView.setLayoutParams(params);
this.mKeyboardView.invalidate();
this.mKeyboardView.post(new Runnable() {
@Override
public void run() {
int[] location = new int[2];
Rect r2 = new Rect();
mKeyboardView.getLocalVisibleRect(r2);
double abc = r2.bottom;
}
});
}
【问题讨论】:
-
如果你已经尝试过一些东西,你也可以更好地分享这个。所以我们不必从头开始。
标签: android