我正在制作游戏,当弹出时,我想在软键盘上方有一个EditText位置。
以下是我在主要活动中构建视图层次结构时的代码:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
viewGroup = new RelativeLayout(this);
viewGroup.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
view = new GameView(this);
RelativeLayout.LayoutParams vLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
vLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
view.setLayoutParams(vLayoutParams);
viewGroup.addView(view);
editText = new GameEditText(this);
RelativeLayout.LayoutParams etLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
etLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
editText.setGravity(Gravity.BOTTOM);
editText.setLayoutParams(etLayoutParams);
viewGroup.addView(editText);
setContentView(viewGroup);
这是我的AndroidManifest.xml(重要的部分):
<activity
android:name="app.ember.MainActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="sensorLandscape"
android:windowSoftInputMode="adjustResize"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
额外信息:
有什么建议吗?
以下是一些精彩的截图:
游戏无键盘:
游戏使用键盘和WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
设置(显示器中显示图层层次结构的样子):
游戏键盘和那些标志未设置。
这是所需的输出:
答案 0 :(得分:-1)
将Editbox
作为父母的底部。
android:layout_alignParentBottom="true"
并在清单文件中进行软输入adjustResize/Pan
android:windowSoftInputMode="adjustResize"
“adjustResize”:活动的主窗口始终调整大小,以便为屏幕上的软键盘腾出空间。
“adjustPan”:活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。
检查this了解更多
答案 1 :(得分:-1)
在清单添加
机器人:windowSoftInputMode =&#34; adjustPan&#34;
它会自动调整您的编辑文字下面的键盘