美文网首页
带输入框的Dialog自动弹出软键盘

带输入框的Dialog自动弹出软键盘

作者: _Sisyphus | 来源:发表于2017-05-17 17:24 被阅读0次

自定义Dialog的时候,透明背景,添加输入框,自动弹出软键盘且不能遮盖住输入框等,添加如下样式解决:

<!--不带输入框-->  
<style name="dialog" parent="@android:style/Theme.Holo.Light.Dialog">  
    <item name="android:windowFrame">@color/transparent</item><!-- 边框 -->  
    <item name="android:windowIsFloating">true</item><!-- 是否浮现在activity之上 -->  
    <item name="android:windowIsTranslucent">false</item><!-- 半透明 -->  
    <item name="android:windowNoTitle">true</item><!-- 无标题 -->  
    <item name="android:windowBackground">@color/transparent</item><!-- 自己想要的背景 -->  
    <item name="android:backgroundDimEnabled">true</item><!-- 模糊 -->  
</style>  

<!--带输入框-->  
<style name="inputDialog" parent="@android:style/Theme.Holo.Light.Dialog">  
    <item name="android:windowFrame">@color/transparent</item><!-- 边框 -->  
    <item name="android:windowIsFloating">true</item><!-- 是否浮现在activity之上 -->  
    <item name="android:windowIsTranslucent">false</item><!-- 半透明 -->  
    <item name="android:windowNoTitle">true</item><!-- 无标题 -->  
    <item name="android:windowBackground">@color/transparent</item><!-- 自己想要的背景 -->  
    <item name="android:backgroundDimEnabled">true</item><!-- 模糊 -->  
    <item name="android:windowSoftInputMode">stateAlwaysVisible</item><!--显示软件盘-->  
</style>

样式具体使用:

    LinearLayout rootView = (LinearLayout) LayoutInflater.from(builder.mActivity).inflate(R.layout.share_dialog, null);     
    initViews(rootView);            
    initListener();                
    mDialog = new Dialog(builder.mActivity, R.style.ShareDialogTheme);      //这里创建dialog并应用我们自定义的主题
    mDialog.setContentView(rootView);                                      
    Window dialogWindow = mDialog.getWindow();  
    dialogWindow.setGravity(Gravity.BOTTOM);                               
    dialogWindow.setWindowAnimations(R.style.DialogAnimStyle);             
    WindowManager.LayoutParams lp = dialogWindow.getAttributes();

    //设置宽高
    lp.width = (int) getResources().getDisplayMetrics().widthPixels;  
    rootView.measure(0, 0);
    lp.height = rootView.getMeasuredHeight();                               
    lp.dimAmount = 0.75f;                                            //半透明背景的灰度 在0.0f和1.0f之间,0.0f完全不暗,1.0f全暗
    dialogWindow.setAttributes(lp);
    mDialog.setCancelable(true);
    mDialog.show();

相关文章

网友评论

      本文标题:带输入框的Dialog自动弹出软键盘

      本文链接:https://www.haomeiwen.com/subject/npndxxtx.html