java - 键盘可见时调整 DialogFragment 的大小
问题描述
(我正在使用 Xamarin C#,但代码与 Java 相同)
我创建了DialogFragment
一个自定义布局。OnCreateView
看起来像这样:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.dialog_feedback, container);
int scale = Context.Resources.DisplayMetrics.HeightPixels;
int height = scale / 2;
Dialog.Window.SetLayout(ViewGroup.LayoutParams.MatchParent, height);
Dialog.Window.SetGravity(GravityFlags.Bottom | GravityFlags.CenterHorizontal);
return view;
}
OnCreate
看起来像这样:
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetStyle(0, Resource.Style.dialog_no_border);
}
这是风格:
<style name="dialog_no_border" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
对话框正在膨胀的布局包含 aConstraintLayout
作为父级,并且其中有一个AppCompatEditText
。
当我打开对话框并单击 EditText 时,键盘与 Edittext 重叠。我想要做的是,当键盘弹出时,它应该向上推并在DialogFragment
其自身上方显示 EditText。我如何做到这一点?
我尝试在清单内的标签中设置android:windowSoftInputMode="adjustNothing"
, android:windowSoftInputMode="adjustPan"
,但没有运气!android:windowSoftInputMode="adjustResize"
activity
那么,我该如何实现呢?
解决方案
推荐阅读
- r - 在R代码中使用样式器将T替换为TRUE,F替换为FALSE
- python - Google Places API 是否可以在用户输入时接受实时文本输入并生成地址/地点(Python)?
- authentication - Identity Server 4 等效于 Identity Server 3 IUserService AuthenticateExternalAsync 和 AuthenticateLocalAsync 方法
- c# - 实体框架不从其他表中删除行
- java - Stream 中是否有办法将 SUM 作为中间操作
- javascript - Firestore:发布项目后如何更新数据模型?
- android - 如何从付费应用转换为应用内购买?iOS 和 Android + Flutter
- r - R中的图表 - 条形图和折线图
- import - 笑话:不能在模块外使用 import 语句
- python - pandas .groupby() 返回字符串而不是整数