键盘显示和景观屏幕上的布局扭曲

时间:2013-02-19 18:30:35

标签: android android-layout

发现类似的问题,但找不到最佳答案。 如何解决Android键盘显示和横向屏幕上的布局问题? 以下是出现问题的图片。Initial layouot

以上是原始布局

在屏幕后面的键盘下方

layout after keyboard

在键盘后的第二张图片布局中,缺少半按钮并且缺少登录文本视图

请帮助我解决这个问题?

这是第3张图片

layout with landscape screen

横向问题 缺少按钮和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可以回答这个问题吗

2 个答案:

答案 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时隐藏键盘。