我正在尝试在 andengine 游戏之上创建一个 EditText 以充当游戏中的聊天框。我使用的方法在 Android 2.2.1 IDEOS 2, Emulator Android 2.1, Emulator Android 2.2, Emulator Android 2.3 上运行良好。
更新 25/APR/2012:最近在三星 Galaxy S SGH-T959 Android 2.1-Update1 上进行了测试,除了轻微的对齐问题外,它工作正常,这是三星 Android 2.3 的问题。
以下设备不会在 andengine 游戏活动的顶部显示 EditText 控件:
- 三星 Y S5360 安卓 2.3.6
- 三星 Galaxy 551 安卓 2.3.6
这就是我在游戏活动中所做的
chatEditText = new EditText(this);
chatEditText.setSingleLine(true);
chatEditText.setId(1);
chatEditText.setHint(" ");
tableLayout = new TableLayout(this);
tableLayout.setVerticalGravity(Gravity.BOTTOM);
tableLayout.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
tableLayout.setHorizontalGravity(Gravity.CENTER_HORIZONTAL);
tableLayout.setPadding(25, 25, 25, 308);
tableLayout.addView(chatEditText);
LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
this.addContentView(tableLayout, lp);
tableLayout.setVisibility(View.GONE);
为了显示/隐藏控件,我根据需要使用处理程序将其可见性设置为 View.VISIBLE 或 View.GONE。
以上适用于 IDEOS 2 Android 2.2.1 和模拟器,但不适用于三星 Galaxy 551、三星 Galaxy S 5360,其他设备需要测试。请帮忙。
上面的方法在这里描述:AndEngine forum, display UI in andengine 建议了另一种方法,一个弹出对话框将在这里显示 EditText AndEngine helper class Input Text,但这不适合我的用例。
想使用标准的 EditText,否则唯一的出路是在 AndEngine 中实现自己的假键盘和假输入精灵,限制硬件和国际键盘可能不可用。任何帮助将不胜感激。