FrameLayoutまたはLinearLayoutにコンテンツを表示するアクティビティがあります。画面下部にボタンがあるはずです。アンドロイドはただ一つのrootviewしか許さないので、ButtonとLayoutの両方を何かにラップする必要があります。私はAndroidManifest.xml経由で "adjustResize"フラグを設定しました。このフラグは、ソフトキーボードの下から上にボタンを移動する必要があります。問題は、私がこれを達成できなかったことです(ボタンはソフトキーボードの下に隠れていました - ボタンは動かない)。表示されたキーボードでボタンを正しい位置に移動する唯一の方法は、線形またはフレームレイアウトをScrollViewに置き換えることです。ボタンがstateVisibleフラグ付きのレイアウトで表示されているキーボードでリサイズされていない
私の質問は、ScrollViewでのみ動作する理由は何ですか?私はこのaproachを複数のビューですでに使用していましたが、それは常に異なるビューグループでも機能しました。誰かが何か考えているのですか?
これは私のレイアウトはどのように見えるかです:あなたは、ID create_account_textとのTextViewに336dpのmarginTopを追加している
<?xml version="1.0" encoding="utf-8"?>
<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:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools">
<RelativeLayout
style="@style/FirebaseUI.WrapperStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!--
Since the TextInputLayouts change size based on whether or not an error
is showing we use a relative layout to position them absolutely
-->
<android.support.design.widget.TextInputLayout
android:id="@+id/email_layout"
style="@style/FirebaseUI.Text.TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:transitionGroup="true"
android:transitionName="email_field"
app:errorTextAppearance="@style/FirebaseUI.Text.ErrorText"
app:hintTextAppearance="@style/FirebaseUI.Text.HintText"
tools:ignore="UnusedAttribute">
<android.support.design.widget.TextInputEditText
android:id="@+id/email"
style="@style/FirebaseUI.EditText.EmailField"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/name_layout"
style="@style/FirebaseUI.Text.TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="112dp"
app:errorTextAppearance="@style/FirebaseUI.Text.ErrorText"
app:hintTextAppearance="@style/FirebaseUI.Text.HintText">
<android.support.design.widget.TextInputEditText
android:id="@+id/name"
style="@style/FirebaseUI.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="@string/name_hint"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/password_layout"
style="@style/FirebaseUI.Text.TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="224dp"
app:errorTextAppearance="@style/FirebaseUI.Text.ErrorText"
app:hintTextAppearance="@style/FirebaseUI.Text.HintText"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
style="@style/FirebaseUI.EditText.PasswordField"
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.TextInputLayout>
<TextView
android:id="@+id/create_account_text"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginTop="336dp"
style="@style/FirebaseUI.Text.BodyText"/>
<Button
style="@style/FirebaseUI.Button"
android:layout_below="@id/create_account_text"
android:id="@+id/button_create"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:text="@string/button_text_save"/>
</RelativeLayout>
</FrameLayout>
おかげ