2012-10-04 47 views
1

我的TextView中的RelativeLayout,它工作正常不正确的布局:当键盘显示

<TextView 
    android:id="@+id/tv_client_in" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/tv_label_client_out" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/tv_label_client_in" 
    android:background="@drawable/border" 
    android:ems="10" /> 

现在我需要把这个TextView的内部滚动型:在此之后改变布局看起来OK

<ScrollView android:id="@+id/sv_client_in" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/tv_label_client_out" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/tv_label_client_in" 
    android:background="@drawable/border" 
    android:fillViewport="true" 
    > 

    <TextView 
     android:id="@+id/tv_client_in" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     /> 

</ScrollView> 

(第一张图片),但是当显示键盘时,它会被损坏(第二张图片)。我怎样才能解决这个问题?

Good

Bad

完整布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<TextView 
    android:id="@+id/tv_label_client_host" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="20dp" 
    android:ems="10" 
    android:text="@string/label_host" /> 

<EditText 
    android:id="@+id/et_client_host" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/tv_label_client_host" 
    android:ems="10" 
    android:inputType="text" 
    android:lines="1" /> 

<TextView 
    android:id="@+id/tv_label_client_port" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/et_client_host" 
    android:ems="10" 
    android:text="@string/label_port" /> 

<EditText 
    android:id="@+id/et_client_port" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/tv_label_client_port" 
    android:ems="10" 
    android:inputType="number" 
    android:lines="1" /> 

<ScrollView android:id="@+id/sv_client_in" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/tv_label_client_out" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/tv_label_client_in" 
    android:background="@drawable/border" 
    android:fillViewport="true" 
    > 

    <TextView 
     android:id="@+id/tv_client_in" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     /> 

</ScrollView> 


<Button 
    android:id="@+id/btn_client_send" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:text="@string/btn_send" 
    android:onClick="OnBtnSendClick" 
    /> 

<TextView 
    android:id="@+id/tv_label_client_out" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/btn_client_send" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:ems="10" 
    android:text="@string/label_client_out" /> 

<EditText 
    android:id="@+id/et_client_out" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/btn_client_send" 
    android:ems="10" 
    android:inputType="text" 
    android:lines="1" /> 

<Button 
    android:id="@+id/btn_client_clear" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/et_client_port" 
    android:text="@string/btn_client_clear" 
    android:onClick="OnBtnClearClick" 
    /> 

<Button 
    android:id="@+id/btn_client_disconnect" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/et_client_port" 
    android:text="@string/btn_client_disconnect" 
    android:onClick="OnBtnDisconnectClick" 
    /> 

<Button 
    android:id="@+id/btn_client_connect" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/et_client_port" 
    android:layout_toLeftOf="@+id/btn_client_disconnect" 
    android:text="@string/btn_client_connect" 
    android:onClick="OnBtnConnectClick" 
    /> 

<TextView 
    android:id="@+id/tv_label_client_in" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/btn_client_connect" 
    android:ems="10" 
    android:text="@string/label_client_in" 
    /> 

</RelativeLayout> 
+0

你的清单中是否使用了android:windowSoftInputMode =“adjustPan”attirubte? – tomas

+0

@tomas:我尝试adjustResize和adjustPan,结果相同。 –

+0

你尝试没有任何属性windowSoftInputMode? – tomas

回答

0

问题通过使用LinearLayout来解决。

0

出现这种情况,主要是因为对准底部的观点。您已将它们对齐到底部,所以当键盘弹出底部变化,因此与它关联的视图。 尝试检查您的xml文件。

+0

我应该改变什么?这个布局在添加ScrollView之前工作。 –