Jor*_*ejo 5 android cordova phonegap-build
我正在为三星Galaxy Tab 3开发一个phonegap应用程序.当此应用程序处于全屏模式时,软键盘会隐藏文本输入字段,并且无法滚动页面以查看内容.我怎么能解决这个问题?
Jor*_*ejo 17
在这个网站上花了一天时间尝试几乎所有可能的解决方案之后,对我来说没有任 最后,我能够根据以下两个提出的解决方案找到解决方法:
此链接显示了解决Android应用程序问题的解决方法; 但是我没有任何在android工作的经验,所以问题是:如何在Phonepap项目中包含这种代码的和平?
这个链接特别建议一个解决方案,这对我来说不起作用,但更重要的是让我知道如何在phonegap项目中添加自定义安卓代码.
解
1-在phonegap项目中创建以下类(如第一个链接中所示):
package com.test.android;
import android.app.Activity;
import android.graphics.Rect;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
public class AndroidBug5497Workaround {
// For more information, see https://code.google.com/p/android/issues/detail?id=5497
// To use this class, simply invoke assistActivity() on an Activity that already has its content view set.
public static void assistActivity (Activity activity) {
new AndroidBug5497Workaround(activity);
}
private View mChildOfContent;
private int usableHeightPrevious;
private FrameLayout.LayoutParams frameLayoutParams;
private AndroidBug5497Workaround(Activity activity) {
FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content);
mChildOfContent = content.getChildAt(0);
mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
possiblyResizeChildOfContent();
}
});
frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();
}
private void possiblyResizeChildOfContent() {
int usableHeightNow = computeUsableHeight();
if (usableHeightNow != usableHeightPrevious) {
int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();
int heightDifference = usableHeightSansKeyboard - usableHeightNow;
if (heightDifference > (usableHeightSansKeyboard/4)) {
// keyboard probably just became visible
frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;
} else {
// keyboard probably just became hidden
frameLayoutParams.height = usableHeightSansKeyboard;
}
mChildOfContent.requestLayout();
usableHeightPrevious = usableHeightNow;
}
}
private int computeUsableHeight() {
Rect r = new Rect();
mChildOfContent.getWindowVisibleDisplayFrame(r);
return (r.bottom - r.top);
}
}
这个类可以放在你项目的这个位置:(我无法在这个论坛中加载图像,我需要至少10个声望).在此网址中找到图片示例:

2-每次创建phonegap项目时,都会得到一个名为your_project_name.java的类.在我的例子中,它是test1.java.编辑类并在方法onCreate:__CODE__model中添加以下句子
AndroidBug5497Workaround.assistActivity(this);
最初的功劳归于Laravel Eager Loading - 仅加载特定列
| 归档时间: |
|
| 查看次数: |
6647 次 |
| 最近记录: |