gpt4 book ai didi

android - 允许 EditText 在禁用时滚动

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:19 24 4
gpt4 key购买 nike

我有一个 EditText 设置如下:

<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="vertical" >

<EditText
android:layout_width="match_parent"
android:layout_height="375dp"
android:ems="10"
android:gravity="top">
</EditText>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>

在程序的某个时刻,输入文本后,EditText 被以下代码禁用:

edittext.setFocusable(false);
edittext.setEnabled(false);

问题是,一旦 EditText 被禁用,我就无法上下滚动查看我写的内容。如何禁用更多输入,但仍允许查看所写内容?

最佳答案

尝试在您的 EditText 上设置 android:inputType="textMultiLine"。即使我已经在评论中说过:在较低的 API 上存在一个错误,但在固定高度下它可能会起作用。

但是,如果这不起作用,您应该创建另一个 View 作为 TextView,它具有与 EditText 相同的属性,并且还具有对 gone ,如下:

<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="vertical" >

<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="375dp"
android:ems="10"
android:gravity="top" >
</EditText>

<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="375dp"
android:ems="10"
android:gravity="top"
android:visibility="gone" >
</TextView>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>

然后,当您使用 KeyEvent.ACTION_DOWNKeyEvent.ACTION_ENTER 处理 setOnKeyListener 方法时,您可以将文本复制到 TextView 中,然后删除您的编辑文本:

edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
String st = edittext.getText().toString();
textview.setVisibility(View.VISIBLE);
textview.setText(st);
return true;
}
return false;
}
});

如果你需要重写你的文本,你可以做一个反向的方法。
希望这会有所帮助。

关于android - 允许 EditText 在禁用时滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799770/

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