1

Androidチャットアプリケーションを作成しています。
ただし、キーボードを開くと、EditText はほとんどカバーされません。
「adjustResize」を使用すると、EditText はカバーされませんが、ListView はカバーされます。

マニフェスト:

android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

レイアウト:

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


    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lV_chat"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/linearLayout3"
        android:background="@color/gray"
        android:layout_below="@+id/toolbarChat"
        android:divider="@null"
        android:paddingRight="@dimen/space_6dp"
        android:paddingLeft="@dimen/space_6dp" />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="@dimen/chat_text_input_height"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:id="@+id/linearLayout3"
        android:background="@color/white">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:inputType="textMultiLine"
            android:ems="10"
            android:id="@+id/eT_chat"
            android:layout_weight="1"
            android:background="@color/transparency"
            android:layout_marginLeft="@dimen/space_20dp"    
            android:textCursorDrawable="@null" />

        <ImageButton
            android:layout_width="@dimen/chat_send_button_width"
            android:layout_height="match_parent"
            android:id="@+id/iB_send"
            android:background="@color/light_blue"
            android:src="@drawable/ic_send"
            android:scaleType="centerInside" />
    </LinearLayout>

</RelativeLayout>

キーボードが閉じている

キーボードが開いている

4

2 に答える 2

0

このようなことをしてみてください

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

    <RelativeLayout
        android:id="@+id/mainLayout"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="50dp"
        android:fitsSystemWindows="true">


        <ListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/lV_chat"
            android:divider="@null"
             />



    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            >

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:inputType="textMultiLine"
            android:ems="10"
            android:id="@+id/eT_chat"
            android:layout_weight="1"
            android:textCursorDrawable="@null" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/iB_send"
            android:src="@mipmap/ic_launcher"
            android:scaleType="centerInside" />
    </LinearLayout>

</RelativeLayout>
    </RelativeLayout>

android:layout_marginBottom="your edittext's layout's width"whichをmain layout含む必要がある場合は、その中の and をlistview使用して問題を修正する必要があります。Relative layoutLinear layout

これらの行をlinear layout

android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"

相対レイアウトには、 android:layout_alignParentBottom="true"which containsEditTextと sendが必要iconです。

于 2015-10-18T03:45:26.077 に答える
0

私の意見では、「adjustResize」が最善の策です。これにより、キーボードに合わせてリスト ビューのサイズが変更されます。リストでbottomPaddingを使用できます。「adjustPan」はレイアウト全体をずらして見栄えが悪いのであまり役に立ちません。

于 2015-10-18T04:03:24.830 に答える