gpt4 book ai didi

具有多行和 adjustPan windowSoftInputMode 的 Android edittext

转载 作者:太空狗 更新时间:2023-10-29 15:25:35 32 4
gpt4 key购买 nike

在我目前正在开发的聊天应用程序中,我有一个带有编辑文本的底栏,这是我的 editText 布局:

 <RelativeLayout
android:id="@+id/bottom_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>

<EditText
android:id="@+id/edt_send_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dip"
android:layout_toEndOf="@+id/img_add"
android:layout_toStartOf="@+id/img_send_message"
android:background="#00000000"
android:hint="@string/send_message"
android:inputType="textCapSentences|textMultiLine|textAutoComplete|textAutoCorrect"
android:isScrollContainer="false"
android:lineSpacingMultiplier="1.2"
android:maxHeight="120dip"
android:minHeight="45dip"
android:paddingBottom="19dip"
android:paddingTop="19dip"
android:scrollbars="none"
android:textColorHint="@color/colorPrimary"
android:textSize="16sp">
</EditText>

<!-- OTHER STUFF -->

</RelativeLayout>

当我开始打字时它很好,多行输入很好。

但是当我将焦点移动到第一行时,会发生这种情况,部分编辑文本会移动到键盘下方。

enter image description here

我知道使用 adjustResize 可以解决问题,但我不能使用它,因为我有一个位图并且它被压缩了。所以我不能使用adjustResize

需要帮助,在此先感谢。

最佳答案

有趣的问题,我唯一想到的就是这个 hacky 解决方案。此外,我不确定这 200 毫秒对于速度较慢的设备是否足够。但也许它会对您有所帮助。

final EditText txtEdit = (EditText) findViewById(R.id.edt_send_message);
txtEdit.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
final int sel = txtEdit.getSelectionStart();
txtEdit.setSelection(txtEdit.getText().length());
txtEdit.postDelayed(new Runnable() {

@Override
public void run() {
txtEdit.setSelection(sel);
}
}, 200);
}
});

关于具有多行和 adjustPan windowSoftInputMode 的 Android edittext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42066062/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com