当软键盘显示android时如何移动布局

我有一个login屏幕,在我的布局中有两个EditTexts和一个loginbutton。 问题是,当我开始input时,显示软键盘并覆盖loginbutton。 当键盘出现时,我怎样才能将键盘向上或向上推?

我不想使用ScrollView ,只是想实现它,而不需要向下滚动。 请给我build议一些做法。 提前致谢。

将Window SoftInput Mode属性设置为adjustPan和adjustResize

 <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity> 

试试这个对应于activity的android清单文件。

 <activity android:windowSoftInputMode="adjustPan"> </activity> 

onCreate()方法中使用此代码:

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

只要

 android:windowSoftInputMode="adjustResize" 

在你的Manifest文件中的activity标签中就可以做到这一点

将这行放在manifest.xml中的活动声明时间中

 <android:windowSoftInputMode="adjustPan"> 

我知道设备上的软键盘的状态。 当键盘被显示时,我将布局移动到y位置,并且在未示出时移回原始位置。 这工作正常,遵循从https://stackoverflow.com/a/4737265/1063861的指导方针;

把这个放在清单文件中的activity声明中<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

或者如果你想要的话,你可以添加你的活动的onCreate()方法

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
 android:fitsSystemWindows="true" 

在布局文件和主布局上添加属性

 android:windowSoftInputMode="adjustResize" 

在您的Activty的Manifest.xml文件中添加一行

它为我完美的工作。

这是所需要的一切:

 <activity android:windowSoftInputMode="adjustResize"> </activity> 

按照本指南 ,正确的方法是在您的清单中声明:

 <activity name="EditContactActivity" android:windowSoftInputMode="stateVisible|adjustResize"> </activity> 

当软键盘出现时,它会改变主布局的大小,你需要做的是为这个mainlayout创build一个监听器,并在这个监听器中添加代码scrollT0(x,y)来向上滚动。

如果你正在使用xamarin,你可以把这个代码WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize MainActivity类的activity属性中的WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize 。 例如,现在活动属性如下所示

  [Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)] public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity { //some code here. } 

使用相对布局,它将调整视图,以便您可以在input文本时看到该视图

这对我来说就像一个魅力

 getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

你应该在你的android Mainfest.xml文件中使用“android:windowSoftInputMode =”adjustPan | stateHidden“来声明她的活动,这将调整你的布局内容。