レイアウトに2つのEditTexts
とログインボタンのあるログイン画面があります。問題は、入力を開始すると、ソフトキーボードが表示され、ログインボタンが覆われることです。キーボードが表示されたときにレイアウトをキーボードの上または上にプッシュするにはどうすればよいですか?
ScrollView
を使用するのではなく、下にスクロールせずに実装するだけです。いくつかの方法を提案してください。前もって感謝します。
デバイスのソフトキーボードの状態を知ることで、どういうわけかこれを達成しました。キーボードが表示されている場合はレイアウトをy位置に移動し、表示されていない場合は元の位置に戻します。これは正常に動作し、その後に このガイドライン が続きます
windowSoftInputMode
プロパティをadjustPan
およびadjustResize
に設定します
<activity Android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
アクティビティに対応するAndroidマニフェストファイルでこれを試してください。
<activity Android:windowSoftInputMode="adjustPan"> </activity>
onCreate()
メソッドで次のコードを使用します。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
のみ
Android:windowSoftInputMode="adjustResize"
マニフェストファイル内のアクティビティタグでトリックを行います
Manifest.xmlのアクティビティ宣言時間にこの行を入れてください
<Android:windowSoftInputMode="adjustPan">
Android:fitsSystemWindows="true"
レイアウトファイルのメインレイアウトにプロパティを追加し、
Android:windowSoftInputMode="adjustResize"
activtyのManifest.xmlファイルに行を追加します
私にとっては完璧な仕事です。
これをマニフェストファイル<activity Android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
のアクティビティ宣言に入れます
または、必要に応じてアクティビティのonCreate()メソッドを追加できます
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
必要なのはこれだけです。
<activity Android:windowSoftInputMode="adjustResize"> </activity>
ソフトキーボードが表示されると、メインレイアウトのサイズが変更されます。必要なのは、そのmainlayoutのリスナーを作成し、そのリスナー内でコードscrollT0(x,y)
を追加して上にスクロールすることです。
Xamarinを使用している場合、このコードWindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize
をMainActivityクラスのアクティビティ属性に配置できます。たとえば、アクティビティ属性は次のようになります
[Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
//some code here.
}
この guide によると、これを実現する正しい方法は、マニフェストで宣言することです。
<activity name="EditContactActivity"
Android:windowSoftInputMode="stateVisible|adjustResize">
</activity>
相対レイアウトを使用してビューを調整し、テキストを入力しながらそのビューを表示できるようにします
あなたが使用する必要があります
Android:windowSoftInputMode="adjustPan|stateHidden"
アクティビティを宣言するAndroidManifest.xml
ファイル内。これにより、レイアウトにキーボードが表示されているときに、レイアウトの内容が調整されます。
これは私にとって魅力的です
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);