我的片段中有一个edittext。为防止软键盘向上推,我尝试了
android:windowSoftInputMode="adjustPan"
android:windowSoftInputMode="adjustNothing"
以编程方式我尝试了片段
的onResume和oncreateview方法getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
以上技术没有奏效。但是当我将 scrollview 作为根视图放入片段并放入 android:isScrollContainer =" false" 属性时,上面的方法正在工作......我怎么能让它工作没有滚动视图
答案 0 :(得分:1)
在片段getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
答案 1 :(得分:0)
另外,要考虑仔细检查的是你的片段是否是DialogFragments。获取DialogFragment的窗口,然后设置其软输入解决了我的问题,其他解决方案没有。
对话框是一个小窗口,提示用户做出决定或输入其他信息。对话框不会填满屏幕,通常用于需要用户在继续操作之前执行操作的模态事件。
<强>来源:https://developer.android.com/guide/topics/ui/dialogs.html 强>
话虽这么说,DialogFragment有自己的窗口,可以通过在onCreateDialog方法中执行以下操作来设置。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = // instantiate your dialog
//Get your dialog's window
Window window = dialog.getWindow();
if (window != null) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
}
return dialog;
}
答案 2 :(得分:0)
在ScrollView中设置android:isScrollContainer = "false"
对我有用。
根据文档,将“ isScrollContainer”设置为true意味着可以调整滚动视图的大小以缩小其整个窗口,从而为输入法留出空间。
我怀疑在未将此属性设置为false的情况下发生的情况是,默认情况下ScrollView被视为滚动容器,并且正在调整大小(缩小)以允许出现输入法。之所以显示ScrollView之外的所有内容,是因为ScrollView缩小的程度足以显示同一层次结构级别的输入法和其他视图。