我正在进行布局,我在屏幕中央对齐了一个cardview
,并在屏幕底部与我们button
联系。键盘关闭时,此布局看起来不错。
layout.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<ImageView
android:id="@+id/login_image"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/login_background" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/grey_background" />
</LinearLayout>
<android.support.v7.widget.CardView
android:id="@+id/media_card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
card_view:cardBackgroundColor="@color/white"
card_view:cardElevation="4dp"
card_view:cardCornerRadius="5dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/logoImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/grey_background"
android:padding="15dp"
android:src="@drawable/logo_login"
/>
<EditText
android:id="@+id/usertext"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/logoImageView"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:background="@drawable/edittext_background"
android:hint="User ID"
android:maxLength="50"
android:padding="10dp"
android:singleLine="true"
android:textColorHint="@color/hint_text_color"
android:textSize="16sp" />
<FrameLayout
android:id="@+id/passwordLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/usertext"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<EditText
android:id="@+id/passtext"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/edittext_background"
android:fontFamily="sans-serif"
android:hint="@string/password"
android:inputType="textPassword"
android:maxLength="50"
android:padding="10dp"
android:singleLine="true"
android:textColorHint="@color/hint_text_color"
android:textSize="16sp" />
<ImageView
android:id="@+id/passwordeye"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:padding="8dp"
android:layout_marginRight="25dp"
android:src="@drawable/eye_close" />
</FrameLayout>
<LinearLayout
android:id="@+id/termsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/passwordLayout"
android:layout_marginLeft="15dp"
android:layout_marginRight="20dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/checkbox_checked" />
<TextView
android:id="@+id/terms_and_cond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textColor="@color/black"
android:textColorLink="#80000000"
android:textSize="13sp" />
</LinearLayout>
<View
android:id="@+id/lineView"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/termsLayout"
android:layout_marginTop="15dp"
android:background="@color/grey_background" />
<LinearLayout
android:id="@+id/newuser_login_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/dark_grey"
android:layout_below="@id/lineView"
android:orientation="horizontal">
<TextView
android:id="@+id/newUserButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/translucent_round_button"
android:gravity="center"
android:text="New User ?"
android:textColor="@color/grey_text_color"
android:textSize="17sp" />
<TextView
android:id="@+id/loginbutton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bottom_round_button"
android:gravity="center"
android:text="Login"
android:textColor="@color/white"
android:textSize="17sp" />
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/contactus_button"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:background="@drawable/contact_us_selector"
android:drawableLeft="@drawable/contact_us_green"
android:drawablePadding="5dp"
android:gravity="center"
android:padding="8dp"
android:text="Contact Us"
android:textColor="@color/black" />
<TextView
android:id="@+id/textviewone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:gravity="center"
android:textColor="@color/black"
android:textColorLink="#80000000"
android:textSize="13sp" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/snackbarCoordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</android.support.design.widget.CoordinatorLayout>
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/android:progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone" />
</FrameLayout>
当键盘打开然后联系我们button
,上面屏幕底部的文字隐藏在中心布局后面。我希望它不应该隐藏,在打开键盘屏幕时应该滚动并联系我们button
应该在底部。
在打开键盘时,它看起来像: -
答案 0 :(得分:1)
只需添加一行......
在清单文件的必需活动中添加android:windowSoftInputMode="stateHidden|adjustPan"
。
答案 1 :(得分:0)
添加android:isScrollContainer =“false”属性
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:isScrollContainer="false">
</ScrollView>
答案 2 :(得分:0)
此处的问题是,您的CardView
为android:layout_centerInParent="true"
,而包含“与我们联系”内容的LinearLayout
为android:layout_alignParentBottom="true"
。
我会重新考虑你的布局,它有点乱,但也许你可以用android:layout_alignParentBottom="true"
替换LinearLayout
中的android:layout_below="@+id/media_card_view"
。
答案 3 :(得分:0)
android:windowSoftInputMode="adjustResize"
应该可以解决问题。
"adjustResize" The activity's main window is always resized to make room for the soft keyboard on screen.
https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft
答案 4 :(得分:0)
这是我的布局:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<ImageView
android:id="@+id/login_image"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@android:color/holo_blue_bright"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@android:color/darker_gray"/>
</LinearLayout>
<android.support.v7.widget.CardView
android:id="@+id/media_card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardCornerRadius="5dp"
card_view:cardElevation="4dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/logoImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/darker_gray"
android:padding="15dp"
/>
<EditText
android:id="@+id/usertext"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/logoImageView"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:background="@android:drawable/editbox_background"
android:hint="User ID"
android:maxLength="50"
android:padding="10dp"
android:singleLine="true"
android:textColorHint="@color/colorPrimaryDark"
android:textSize="16sp"/>
<FrameLayout
android:id="@+id/passwordLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/usertext"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<EditText
android:id="@+id/passtext"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@android:drawable/editbox_background"
android:fontFamily="sans-serif"
android:hint="Password"
android:inputType="textPassword"
android:maxLength="50"
android:padding="10dp"
android:singleLine="true"
android:textColorHint="@color/colorPrimaryDark"
android:textSize="16sp"/>
<ImageView
android:id="@+id/passwordeye"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_marginRight="25dp"
android:padding="8dp"
android:src="@android:drawable/ic_menu_edit"/>
</FrameLayout>
<LinearLayout
android:id="@+id/termsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/passwordLayout"
android:layout_marginLeft="15dp"
android:layout_marginRight="20dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@android:drawable/checkbox_on_background"/>
<TextView
android:id="@+id/terms_and_cond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textColor="@android:color/black"
android:textColorLink="#80000000"
android:textSize="13sp"/>
</LinearLayout>
<View
android:id="@+id/lineView"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/termsLayout"
android:layout_marginTop="15dp"
android:background="@android:color/darker_gray"/>
<LinearLayout
android:id="@+id/newuser_login_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@id/lineView"
android:background="@android:color/darker_gray"
android:orientation="horizontal">
<TextView
android:id="@+id/newUserButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="New User ?"
android:textColorHint="@android:color/darker_gray"
android:textSize="17sp"/>
<TextView
android:id="@+id/loginbutton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Login"
android:textColor="@android:color/white"
android:textSize="17sp"/>
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/media_card_view"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:layout_below="@+id/media_card_view">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:drawableLeft="@android:drawable/sym_contact_card"
android:drawablePadding="5dp"
android:padding="8dp"
android:text="Contact Us"
android:textColor="@android:color/black"
android:layout_gravity="center"/>
<TextView
android:id="@+id/textviewone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:gravity="center_horizontal"
android:text="Copyright by piotrek1543 @2016"
android:textColor="@android:color/black"
android:textColorLink="#80000000"
android:textSize="13sp"/>
</LinearLayout>
</RelativeLayout>
</ScrollView>
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/android:progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"/>
</FrameLayout>
以下是打开键盘之前的外观
之后:
首先,打开您的AndroidManifest
并在LoginActivity
部分中填写此行:
android:windowSoftInputMode="stateVisible|adjustResize">
之后,您的Activity
清单应如下所示:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateVisible|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
然后使用textoneview
和textview1
字段修改LinearLayout,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/media_card_view"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:layout_below="@+id/media_card_view">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:drawableLeft="@android:drawable/sym_contact_card"
android:drawablePadding="5dp"
android:padding="8dp"
android:text="Contact Us"
android:textColor="@android:color/black"
android:layout_gravity="center"/>
<TextView
android:id="@+id/textviewone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:gravity="center_horizontal"
android:text="Copyright by piotrek1543 @2016"
android:textColor="@android:color/black"
android:textColorLink="#80000000"
android:textSize="13sp"/>
</LinearLayout>
希望它会有所帮助
编辑:如果您想保留linearLayout的BottomSheetStyle,可以使用以下代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@id/media_card_view"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal|bottom"
app:layout_behavior="@string/bottom_sheet_behavior"
>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:layout_marginBottom="15dp"
android:drawableLeft="@android:drawable/sym_contact_card"
android:drawablePadding="5dp"
android:padding="8dp"
android:text="Contact Us"
android:textColor="@android:color/black"
android:gravity="center"
android:layout_gravity="center"/>
<TextView
android:id="@+id/textviewone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:gravity="center_horizontal"
android:text="Copyright by piotrek1543 @2016"
android:textColor="@android:color/black"
android:textColorLink="#80000000"
android:textSize="13sp"/>
</LinearLayout>
所以它看起来像:
但打开键盘后会看到
您的&#34;联系我们&#34;将隐藏在CardView
后面。如果您希望两个TextView
都考虑减少media_card_view
的大小。对我来说,它太大了,无法看到两种观点。