android:自定义可输入对话框,EditText已经获得焦点,为啥就是不弹出输入法呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android:自定义可输入对话框,EditText已经获得焦点,为啥就是不弹出输入法呢?相关的知识,希望对你有一定的参考价值。
参考技术A 因为你弹出的对话框跟MainActivity(假设你是在MainActivity上他弹出的)不在同一个Activity上,所以就显示不出来了,就算你能看到软键盘你也无法输入。 参考技术B 写了事件吗?没有show?追问不是···这是个自定义的对话框···按说EditText点击之后显示光标,就意味着获得焦点了,会弹出输入法啊···现在不弹···
参考技术C 你的 layout里面 这个edittext 怎么写的追问Android:Interpolator无法处理自定义对话框
我从顶部创建了一个带有输入动画的对话框。像那样:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Window dialogWindow = getWindow();
assert dialogWindow != null;
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
DisplayMetrics dm = mContext.getResources().getDisplayMetrics();
lp.width = dm.widthPixels;
lp.height = DisplayUtil.dip2px(mContext, 300);
dialogWindow.setAttributes(lp);
dialogWindow.setGravity(Gravity.TOP);
dialogWindow.setWindowAnimations(R.style.DropDown);
...
}
<style name="DropDown" mce_bogus="1" parent="android:Animation">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowEnterAnimation">@anim/dropdown_in</item>
<item name="android:windowExitAnimation">@anim/dropdown_out</item>
</style>
动画没问题,但插补器不起作用。这是我定义的“dropdown_in”动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="1000"
android:fromYDelta="-100%p"
android:toYDelta="0" />
</set>
答案
看来你正在将一个Activity变成一个Dialog。在这种情况下,与Activity的动画存在冲突。您可能希望覆盖Activity的动画。请使用overridePendingTransition(R.style.DropDown,R.style.DropDown)更新您的代码;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
overridePendingTransition(R.style.DropDown, R.style.DropDown);
Window dialogWindow = getWindow();
assert dialogWindow != null;
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
DisplayMetrics dm = mContext.getResources().getDisplayMetrics();
lp.width = dm.widthPixels;
lp.height = DisplayUtil.dip2px(mContext, 300);
dialogWindow.setAttributes(lp);
dialogWindow.setGravity(Gravity.TOP);
dialogWindow.setWindowAnimations(R.style.DropDown);
...
}
以上是关于android:自定义可输入对话框,EditText已经获得焦点,为啥就是不弹出输入法呢?的主要内容,如果未能解决你的问题,请参考以下文章
Android中EditTex焦点设置和弹不弹出输入法的问题
Android IME:显示一个自定义弹出对话框(如 Swype 键盘),可以在 TextView 中输入文本