发现类似的问题,但找不到最佳答案。 如何解决Android键盘显示和横向屏幕上的布局问题? 以下是出现问题的图片。
以上是原始布局
在屏幕后面的键盘下方
在键盘后的第二张图片布局中,缺少半按钮并且缺少登录文本视图
请帮助我解决这个问题?
这是第3张图片
横向问题 缺少按钮和textview,没有得到任何滚动。
这是代码
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="@drawable/background"
android:padding="20dp"
android:paddingEnd="0dp"
android:scrollbars="vertical|horizontal"
>
<ImageView
android:layout_height="wrap_content"
android:src="@drawable/logo"
/>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="15dp">
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="40dp"
android:ems="10"
android:layout_weight="1"
android:hint="Full Name"
android:textSize="16sp"
android:background="@drawable/radius"
android:inputType="textPersonName"
android:paddingLeft="10dp" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="40dp"
android:ems="10"
android:layout_weight="1"
android:hint="Username"
android:textSize="16dp"
android:background="@drawable/radius"
android:paddingLeft="10dp"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:inputType="textPersonName" />
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="40dp"
android:ems="10"
android:textSize="16sp"
android:hint="Email"
android:background="@drawable/radius"
android:inputType="textEmailAddress"
android:paddingLeft="10dp"
/>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="40dp"
android:ems="10"
android:layout_weight="1"
android:hint="Password"
android:textSize="16sp"
android:layout_marginTop="15dp"
android:background="@drawable/radius"
android:inputType="textPassword"
android:paddingLeft="10dp"/>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp" >
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@drawable/button_bg"
android:text="Register"
android:layout_weight="1"
android:layout_margin="2dp"
android:textColor="#FFF"/>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom|center" >
<TextView
android:id="@+id/signIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal|bottom|center"
android:linksClickable="true"
android:textColor="#FFF"
android:text="Sign In to addressbook"
/>
</TableRow>
</TableLayout>
请帮助我将非常感谢你 您好@Sam可以回答这个问题吗
答案 0 :(得分:2)
如果您希望它可滚动,请将整个布局包装在ScrollView
中。正如@AbdulHannan在他的回答中提到的,你可以在AndroidManifest中定义首选行为(resize vs pan),或者在onCreate()中以编程方式定义(但不是两者都是 - 它是多余的)。如果您只是将其包装在ScrollView中,Android将自动使用adjustResize
来调整窗口大小,假设您的ScrollView将适当地处理大小更改并且可以为用户滚动。
侧面设计建议:背景非常华丽;如果需要一个模式,尝试使模式更加微妙。
答案 1 :(得分:0)
在Manifest.xml
中,在您<activity>
下包含此内容,
android:windowSoftInputMode="stateVisible|adjustResize|adjustPan
并在您的onCreate()
中添加以下内容:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
如果您希望在创建Activity
时隐藏键盘。