android - 如何在 ScrollView android中的屏幕底部对齐textview

标签 android android-layout android-scrollview

我正在设计一个包含以下项目的登录屏幕

  1. Logo

  2. User Name

  3. Password 4.Login Button

  4. Copyright

下面是我尝试实现的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/ActivityStyle"
android:orientation="vertical"
tools:context=".abc.ui.main.login.view.LoginActivity">
<!-- Login progress -->
<ProgressBar
    android:id="@+id/login_progress"
    style="?android:attr/progressBarStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_marginBottom="8dp"
    android:visibility="gone" />

<ScrollView
    android:id="@+id/login_form"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical">

    <RelativeLayout
        android:id="@+id/email_login_form"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/img_abc_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:src="@mipmap/abc_logo" />

        <LinearLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/img_abc_logo"
            android:layout_marginTop="80dp"

            android:orientation="vertical">


            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <android.support.v7.widget.AppCompatEditText
                    android:id="@+id/edit_user_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="16dp"
                    android:hint="@string/prompt_email"
                    android:inputType="textEmailAddress"
                    android:maxLines="1"
                    android:paddingTop="10dp"
                    android:singleLine="true"
                    android:textColor="@color/fontColor"
                    android:textColorHint="@color/copy_right_font_color" />

            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <android.support.v7.widget.AppCompatEditText
                    android:id="@+id/edit_password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_password"
                    android:imeActionId="@+id/login"
                    android:imeActionLabel="@string/action_sign_in_short"
                    android:imeOptions="actionUnspecified"
                    android:inputType="textPassword"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:textColor="@color/fontColor"
                    android:textColorHint="@color/copy_right_font_color" />
            </android.support.design.widget.TextInputLayout>

            <Button
                android:id="@+id/button_login"
                style="?android:textAppearanceSmall"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:height="55dp"
                android:text="@string/action_sign_in"
                android:textStyle="bold" />

        </LinearLayout>


    </RelativeLayout>
</ScrollView>

<TextView
    style="@style/CopyRightTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:paddingTop="30dp"
    android:text="@string/copy_right_text" />

我的需求

  1. Log should be at the top
  2. User name ,password and login button should be at the center of screen
  3. Copyright at the bottom

遇到的问题

  1. 由于我使用的是 ScrollView ,因此无法填充高度。我尝试使用 android:fillViewport="true"但我的滚动条消失了。所以我无法将登录输入和按钮置于中心

  2. 出现键盘时,登录按钮上方出现版权信息

最佳答案

将它放在你的 Activity 中 onCreate 方法中

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN | WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

或者 在您的 Activity list 中:

android:windowSoftInputMode="adjustPan"

关于android - 如何在 ScrollView android中的屏幕底部对齐textview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34869876/

相关文章:

android - 没有为我的自定义 BackupAgent 调用 onRestore

java - 使用 Glide 加载 SVG 时图像变得模糊

java - android 更好的保存图像选项?

Android:使用动画显示/隐藏 View

java - 相对布局参数无法正常工作

android - Android 在消耗多少内存后抛出 OutOfMemoryException

导致滚动的Android EditText文本输入

android - 使用 Firebase 时出现 StackoverflowError

android - 如何防止Android ScrollView拦截其父点击事件

Android LinearLayout 中的 ScrollView