簡體   English   中英

如何在滾動視圖android內的屏幕底部對齊textview

[英]How to align textview at the bottom of the screen inside a scroll view android

我正在設計一個具有以下項目的登錄屏幕

  1. 商標

  2. 用戶名

  3. 密碼4.登錄按鈕

  4. 版權

下面是我嘗試實現相同的布局

<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. 日志應該在頂部
  2. 用戶名,密碼和登錄按鈕應位於屏幕中央
  3. 底部的版權

面臨的問題

  1. 由於我使用的是滾動視圖,因此無法填充高度。 我嘗試使用android:fillViewport =“ true”但我的滾動消失了。因此,我無法將登錄輸入和按鈕置於中心

  2. 鍵盤出現時,版權信息位於登錄按鈕上方

放在onCreate方法旁邊的活動中

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

或在您的活動清單上:

android:windowSoftInputMode="adjustPan"

在您的TextView中刪除

 android:layout_alignParentBottom="true"

 android:layout_below="@+id/linearLayout"

TextView在RelativeLayout內部移動。

<TextView
style="@style/CopyRightTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout"
android:layout_centerHorizontal="true"
android:paddingTop="30dp"
android:text="@string/copy_right_text" />
</RelativeLayout>
</ScrollView>

如您所說的,在scrollview中放到relative layout

    <TextView
        style="@style/CopyRightTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:layout_below="@+id/linearLayout"
        android:layout_centerHorizontal="true"
        android:paddingTop="30dp"

        android:text="@string/copy_right_text" />

</RelativeLayout>
</ScrollView>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM