1

私はRelativeLayoutにTextViewを持っていますが、これは正しく機能します:

<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をScrollView内に配置する必要があります。

<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>

この変更後、レイアウトは問題ないように見えますが(最初の画像)、キーボードを表示すると破損しています(2番目の画像)。どうすればこれを修正できますか?

良い

悪い

フルレイアウト:

<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>
4

2 に答える 2

0

これは主に、ビューが下に整列しているために発生します。それらを下に揃えたので、キーボードがポップアップすると、下が変化し、それに関連付けられたビューが変更されます。xmlファイルを確認してみてください。

于 2012-10-04T10:01:22.867 に答える
0

この問題は、LinearLayoutを使用して解決されます。

于 2012-10-04T11:45:12.010 に答える