gpt4 book ai didi

java - 将EditText背景设置为透明后闪烁的光标消失

转载 作者:行者123 更新时间:2023-12-02 01:46:43 26 4
gpt4 key购买 nike

我动态创建了 EditTexts,我希望在创建后有一个闪烁的光标,但我不希望它们有任何底线。根据我发现的建议,我通过将 EditTexts 的背景设置为透明来删除该行(editText.setBackgroundResource(android.R.color.transparent),如文档建议的那样)。但是现在,当创建 EditText 时,它没有闪烁的光标,尽管我请求它获得焦点(editText.requestFocus())。经过检查,我发现它确实很专注。

到目前为止,我已经尝试了我能找到的所有方法(例如: http://techfeeding.blogspot.com/2015/10/set-cursor-drawable-programmatically-in.html ),但它对显示光标没有帮助 - 它仅在您开始键入时出现,但这不是期望的行为。有人建议设置输入类型,但这也没有帮助:setInputType(InputType.TYPE_CLASS_TEXT)。将 isFocusable() 和 isFocusableInTouchMode() 设置为 true 也没有给出任何结果。

EditText 必须是透明的,它们不能有彩色背景,因此将 BG 颜色更改为另一种颜色并不是解决方案。

当通过 XML(在另一个 EditText 上)将背景设置为透明时,它工作正常 - 调用 requestFocus() 后光标就在那里。但是当以编程方式执行相同的操作时,结果是不同的。我如何通过代码实现这一点?

我在自定义 View 中的代码:

EditText edText = new EditText(getContext());
RelativeLayout.LayoutParams params = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
rootLayout.addView(edText, params);

params.leftMargin = Math.round(pointX);
params.topMargin = Math.round(pointY);
edText.setLayoutParams(params);

edText.setBackgroundResource(android.R.color.transparent);
edText.requestFocus();

最佳答案

要设置自定义 EditText 背景宽度和闪烁自定义光标,您必须用户 android:textCursorDrawable 设置自定义光标,android:background 用于自定义编辑文本。

请参阅下面的 XML 代码,我创建了两个自定义 XML 文件,一个用于 EditText 的背景,另一个用于闪烁光标。

EditText XML 代码

 <EditText
android:id="@+id/edt1"
android:layout_width="match_parent"
android:layout_height="60dp"
android:hint="Enter Number 1"
android:textAlignment="center"
android:inputType="numberDecimal"
android:layout_margin="20dp"
android:background="@drawable/edittext_shape"
android:textColor="#fff"
android:focusable="true"
android:textCursorDrawable="@drawable/cursor_widht"
/>

EditText背景XML代码

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:endColor="@color/colorAccent"
android:centerColor="@color/colorAccent"
android:startColor="@color/colorAccent"
android:angle="270" />
<corners
android:radius="30dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />

EditText 光标 XML 代码:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<size android:width="4dp" />
<solid android:color="#FF0910DD"/>

关于java - 将EditText背景设置为透明后闪烁的光标消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57450572/

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