Reputation: 387
I am designing a login screen having following items
Logo
User Name
Password 4.Login Button
- Copyright
Below is the layout I have tried to implement the same
<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" />
My requirement
- Log should be at the top
- User name ,password and login button should be at the center of screen
- Copyright at the bottom
Problem faced
Since I am using scroll view I am not able to fill the height . I tried with android:fillViewport="true" but my scroll disappear.So I am not able to place login input and button to center
Copyright info is coming above login button when key board appear
Upvotes: 1
Views: 1320
Reputation: 13278
In your TextView Remove
android:layout_alignParentBottom="true"
add
android:layout_below="@+id/linearLayout"
TextView move inside the RelativeLayout.like this
<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>
Upvotes: 0
Reputation: 10959
as you are saying inside scrollview put it inside 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>
Upvotes: 0
Reputation: 1230
Put this in your activity in side onCreate Method
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN | WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
or In Manifest at your activty:
android:windowSoftInputMode="adjustPan"
Upvotes: 2