点击编辑文字时推送内容

我到处寻找解决我的问题,但无法find答案。 这是问题。

我有一个看起来像这样的布局

图像在这里

现在,当我点击编辑文本(search栏),我想要发生以下事情

图像在这里

软键盘基本上需要将整个屏幕内容向上推,以使search栏位于顶部,并且其列表视图位于其下方,以便当search内容时显示结果。 我已经尝试设置android:windowSoftInputMode="adjustPan"到清单中的Activity ,但这是行不通的。 我设置一个滚动视图作为包含碎片的主布局中的主容器,但也不起作用。 我已经尝试添加编辑文本(search栏)作为标题列表视图,但是这也没有工作。 每次键盘上推编辑文本,但覆盖列表视图。 有什么办法可以做这个工作吗?

其实如果你想要你的整个布局比你应该使用:

SOFT_INPUT_ADJUST_PAN

含义:

 getActivity().getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

这将保持键盘closures,打开时会将整个活动推上去。

这可以在Fragment Class中使用,将Edit文本向上移动并滚动到结束。

 getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

如果您的Fragment Activity主题不在FullScreen中,这将可以工作。

希望这会有所帮助!

这对我有效。

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

我面临类似的问题,解决scheme很简单。

如果活动中的主题设置为Fullscreen @android:style/Theme.Holo.NoActionBar.FullScreen ,则键盘不会将内容向上推。

将活动更改为@android:style/Theme.Holo.NoActionBar ,键盘现在将活动内容向上推。

尝试这个

 android:windowSoftInputMode="adjustResize" 

为我工作。

在清单文件中试试android:windowSoftInputMode="adjustResize"

你可能需要做的android:windowSoftInputMode="adjustResize|adjustPan" …我真的没有什么比你的设置testing…

你的问题是因为这个(来自adjustPan的文档,重点是我的):

该活动的主窗口不调整为软键盘腾出空间。 相反,窗口的内容自动平移,以便当前焦点永远不会被键盘遮挡,用户总是可以看到他们正在键入的内容

鉴于此,您的列表被遮盖,因为顶部的EditText有焦点。 我现在唯一能想到的就是移动EditText,使其位于列表的下面。 然后推高时,你的列表仍然应该在EditText上方可见。

我无法find布局自动更改的解决scheme,所以我不得不破解它。 我使用我在主要活动中发现的代码来检测键盘何时打开。 我只是添加代码来调用一个方法,当打开键盘时隐藏我的前两个片段。 这不是我想要做的,但它的工作原理。

这对于我来说是片面的,只需在Manifest中用activity来声明:

 android:windowSoftInputMode="adjustPan" 

祝你好运!

我使用这个为我的EditTextlogin:

 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

关于这个方法的一些说明:

this是指上下文,因为getActivity()并不总是可取的

 .SOFT_INPUT_STATE_HIDDEN //for default hidden state when activity loads .SOFT_INPUT_STATE_VISIBLE //for auto open keyboard when activity loads 

每次工作!

如果有人仍然面临这个问题

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:id="@+id/view" **android:fitsSystemWindows="true"** android:layout_height="match_parent"> 

添加这个在你的布局

 android:fitsSystemWindows="true" 

希望能解决问题
它为我工作。