我需要在底部使用<scrollview>
布局,其中包含一些EditTexts
和一个线性Buttons
,但问题是当软键盘输出时,布局不会't scroll
它完全隐藏Buttons
'线性,主线性(@+id/main)
离开了屏幕!
以下是我的布局概述:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#03A9F4"
android:gravity="center"
>
<RelativeLayout
android:id="@+id/main"
android:layout_width="310dip"
android:layout_height="485dip"
android:background="#03A9F4"
android:gravity="center">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="435dip"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="false"
android:background="@drawable/border_signup_signin_auth">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:orientation="vertical"
tools:ignore="UselessLeaf">
</LinearLayout>
<ScrollView
android:id="@+id/ScrollMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:isScrollContainer="false"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:orientation="vertical"
android:paddingEnd="10dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="5dip"
android:paddingRight="5dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<Button
android:id="@+id/btnSignUp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="test"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<Button
android:id="@+id/btnGuest"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="test"
android:textSize="16sp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</RelativeLayout>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerInParent="false"
android:contentDescription="TODO"
app:srcCompat="@mipmap/signup"
tools:ignore="ContentDescription"/>
</RelativeLayout>
</LinearLayout>
在清单中我尝试了以下属性:
android:windowSoftInputMode="adjustResize"
另外,我尝试过类似问题的解决方案,如:
但是对我不起作用。
有谁知道为什么它不起作用?
提前谢谢!
答案 0 :(得分:3)
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/profile_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:windowSoftInputMode="adjustResize|adjustPan"
tools:context="com.example.user22.hotelxp.Activity.MyProfileActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerInParent="false"
android:contentDescription="TODO"
app:srcCompat="@mipmap/signup"
android:layout_alignParentBottom="true"
tools:ignore="ContentDescription"/>
<LinearLayout
android:id="@+id/profile_layout_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ScrollView
android:id="@+id/layout_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="70dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:orientation="vertical"
android:paddingEnd="10dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
<RelativeLayout
android:id="@+id/btn_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="5dip"
android:paddingRight="5dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<Button
android:id="@+id/btnSignUp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="test"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<Button
android:id="@+id/btnGuest"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="test"
android:textSize="16sp"
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
在AndroidManifest中:
android:windowSoftInputMode="stateHidden|adjustResize"
答案 1 :(得分:2)
将android:windowSoftInputMode="adjustPan|adjustResize"
添加到调用Activity的
或
在onCreate()
方法
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
答案 2 :(得分:1)
最后,我找到了解决方案
我刚刚将Scrollview's
父级更改为RelativeLayout
(而不是LinearLayout
)。
我不知道为什么,但它解决了这个问题。也许在布局中它的主要布局是RelativeLayout,Scrollview的父级应该是RelativeLayout! (但我不确定)
这是固定代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#03A9F4"
android:gravity="center"
>
<RelativeLayout
android:id="@+id/main"
android:layout_width="310dip"
android:layout_height="485dip"
android:background="#03A9F4"
android:gravity="center">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="435dip"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="false"
android:background="@drawable/border_signup_signin_auth">
<!--It changed to RelativeLayout and fix the problem-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:orientation="vertical"
tools:ignore="UselessLeaf">
</LinearLayout>
<ScrollView
android:id="@+id/ScrollMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:isScrollContainer="false"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical"
android:paddingEnd="5dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dip"
android:orientation="vertical"
android:paddingEnd="10dip"
tools:ignore="RtlSymmetry">
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dip"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingLeft="5dip"
android:paddingRight="5dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<Button
android:id="@+id/btnSignUp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="test"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:orientation="vertical">
<Button
android:id="@+id/btnGuest"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="test"
android:textSize="16sp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</RelativeLayout>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerInParent="false"
android:contentDescription="TODO"
app:srcCompat="@mipmap/signup"
tools:ignore="ContentDescription"/>
</RelativeLayout>
</LinearLayout>