键盘覆盖部分edittext

Posted

技术标签:

【中文标题】键盘覆盖部分edittext【英文标题】:keyboard covering part of edittext 【发布时间】:2016-02-26 12:46:22 【问题描述】:

当我单击 EditText 时,键盘会弹出并覆盖 EditText 的一部分。我希望 EditText 完全可见

我尝试了 adjustPan 和 adjustResize ,但它们不起作用。我想在片段中执行此操作。

这就是现在的样子

这就是我想要的样子

更新:

<RelativeLayout
    android:layout_
    android:layout_
    android:background="#EAEAEA"
    android:clickable="true" >

    <RelativeLayout
        android:id="@+id/header"
        android:layout_
        android:layout_
        android:background="@android:color/white" >

        <TextView
            android:id="@+id/message_header"
            android:layout_
            android:layout_
            android:layout_marginLeft="15dp"
            android:layout_marginStart="15dp"
            android:gravity="center_vertical"
            android:text="@string/messages"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/black" />

        <ImageView
            android:id="@+id/close_button"
            android:layout_
            android:layout_
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:contentDescription="@null"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:src="@drawable/close" />
    </RelativeLayout>

    <ListView
        android:id="@+id/message_area"
        android:layout_
        android:layout_
        android:layout_above="@+id/edit_control"
        android:layout_below="@+id/imageSmsProfile"
        android:background="#EAEAEA"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:fadeScrollbars="true"
        android:overScrollHeader="#EAEAEA" >
    </ListView>

    <com.monqi.kid.custom.CustomRoundedImageView
        android:id="@+id/imageSmsProfile"
        android:layout_
        android:layout_
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:background="@drawable/rounded_rectangle_shape"
        android:scaleType="centerCrop"
        app:left_bottom_corner_radius="10dip"
        app:left_top_corner_radius="10dip"
        app:right_bottom_corner_radius="10dip"
        app:right_top_corner_radius="10dip" />

    <RelativeLayout
        android:id="@+id/edit_control"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:paddingLeft="5dp"
        android:paddingRight="5dp" >

        <EditText
            android:id="@+id/input_chat_message"
            android:layout_
            android:layout_
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_toLeftOf="@+id/button_chat_send"
            android:layout_toStartOf="@+id/button_chat_send"
            android:background="@drawable/edittext_drawable"
            android:cursorVisible="false"
            android:ems="10"
            android:inputType="textImeMultiLine"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingStart="10dp" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/button_chat_send"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="2dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/send_button"
            android:text="@string/send"
            android:textColor="@android:color/white" />
    </RelativeLayout>
</RelativeLayout>

【问题讨论】:

使用 tpA 的答案并将您的视图放入 ScrollView。 请尝试将您的布局放在ScrollView中 你能把你的xml放上去吗 @AbleAlias 没有帮助 @Umesh 对此的任何解决方案。这一年是 2020 年,我们仍然坚持这一年。 【参考方案1】:

使用android:windowSoftInputMode="adjustResize|adjustPan"

【讨论】:

它是一个片段因此不能设置windowsoftinputMode。我尝试为拥有该片段的活动设置这些标志。不工作 @EminenT 同时使用 adjust*** 属性值是不正确的方法。【参考方案2】:

在 AndroidManifest 中添加 android:windowSoftInputMode="adjustResize|adjustResize" 并使用包含您的 rootView 的滚动视图。

【讨论】:

【参考方案3】:

当我被困在我在 onCreate() 中添加以下代码行的同一场景中时,这对我有用,希望这会有所帮助

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

【讨论】:

它是一个片段因此不能设置windowsoftinputMode。我已经尝试为拥有该片段的活动设置这些标志。不工作 我认为一个 Activity 的所有片段都具有与其父 Activity 相同的行为,但是如果您需要不同片段的不同键盘行为,您可以从片段代码中动态更改此属性,如下所示:getActivity( ).getWindow().setSoftInputMode(WindowManager.LayoutParams.softInputMode.SOFT_INPUT_ADJUST_PAN);【参考方案4】:

试试这个 xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical" >

<ListView
    android:id="@+id/listView1"
    android:layout_
    android:layout_
    android:layout_marginBottom="80dp">
</ListView>

<RelativeLayout
    android:id="@+id/form"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="vertical" >

    <EditText
        android:layout_
        android:layout_
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/chatText"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@+id/buttonSend" />

    <Button
        android:layout_
        android:layout_
        android:text="Send"
        android:id="@+id/buttonSend"
        android:layout_alignBottom="@+id/chatText"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

【讨论】:

以上是关于键盘覆盖部分edittext的主要内容,如果未能解决你的问题,请参考以下文章

GridView+PopupWindow自定义数字键盘

使用 UISearchController 显示搜索结果和键盘覆盖 UITableView 中的底部行/部分

android-edittext键盘不显示

仅当键盘覆盖输入字段时才向上移动视图

如何防止键盘覆盖我的 UI 而不是调整它的大小?

UIScrollview 已实现,但 UITextfields 仍被键盘覆盖