在我当前的项目中,我有一个视图,上面三分之一有一些文本视图,中间有一个编辑文本,底部有一个按钮,所有这些都占用大致相同的空间。现在当我想在edittext中输入一些东西时,键盘弹出并且视图没有调整大小,所以键盘隐藏了一半的edittext,看起来很糟糕,或者视图被调整大小,缩小到它的一半大小,看起来......非常......糟糕。在我的应用程序的 iphone 版本中,我制作了它,所以当我点击编辑文本时,它会变大并放大,填满整个视图,因此只显示编辑文本和键盘。问题是,我完全不知道如何在 Android 中做到这一点。我已经重建了我的 xml 布局以使用 relativelayout 而不是 linearlayout,因为我认为它会更容易。然后我将更改放在 onFocusChange 方法中,如下所示:
et = (EditText)v.findViewById(R.id.etItems);
et.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
if(arg0==et) {
if(arg1==true) {
Log.i("EditText","got focus");
enlargeEditText();
}
} else {
Log.i("EditText","lost focus");
}
}
});
private void enlargeEditText() {
RelativeLayout.LayoutParams rllp = (LayoutParams) v.getLayoutParams();
rllp.setMargins(0, 0, 0, 0);
v.setLayoutParams(rllp);
}
放大编辑文本方法不是最终的,我只是想看看是否有什么变化,但是……不是……而是我得到:
08-22 17:26:22.108: E/AndroidRuntime(20662): at de.lochmann.einkaufsliste.FragCreateList$1.onFocusChange(FragCreateList.java:88)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.onFocusChanged(View.java:3938)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.widget.TextView.onFocusChanged(TextView.java:8465)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.widget.EditText.onFocusChanged(EditText.java:136)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.handleFocusGainInternal(View.java:3760)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.requestFocus(View.java:5453)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.requestFocus(View.java:5403)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.requestFocus(View.java:5381)
有什么问题?有任何想法吗?提前致谢。