gpt4 book ai didi

android - EditText 应用样式奇怪的行为

转载 作者:行者123 更新时间:2023-11-29 01:26:36 25 4
gpt4 key购买 nike

我创建一个 EditText 样式:

 <style name="EditModeTextEdit">
<item name="android:textColor">@color/edittext_textcolor</item>
<item name="android:textSize">@dimen/edittext_textsize</item>
<item name="android:textStyle">bold</item>
<item name="android:enabled">true</item>
<item name="android:focusable">true</item>
<item name="android:background">@drawable/textedit_border</item>
<item name="android:layout_margin">@dimen/form_margin</item>
</style>

当我用 XML 应用它时,它看起来不错:

<EditText
android:id="@+id/my_acc_edit_tel_et"
style="@style/EditModeTextEdit"
android:singleLine="true"
custom:layout_gravity="fill_horizontal"
/>

当我在代码中执行相同操作时,我的视觉效果很奇怪。取决于我使用的构造函数。

显示一个常规的编辑文本组件

EditText et = new EditText(new ContextThemeWrapper(mCtx, R.style.EditModeTextEdit)); 

显示样式化的组件,但无法与edittext交互(键盘不显示)

EditText et = new EditText(new ContextThemeWrapper(mCtx, R.style.EditModeTextEdit), 0, null);

我目前被迫使用 EditText 设置方法手动设置每个元素:

protected EditText createEditText(String defaultText, String uiTag)
{
GridLayout.LayoutParams lp = createDefaultGridParams();
lp.setGravity(Gravity.FILL_HORIZONTAL);
lp.width = 250;


EditText et = new EditText(mCtx);
et.setTextColor(getResources().getColor(R.color.edittext_textcolor));
et.setBackgroundResource(R.drawable.textedit_border);
et.setTag(uiTag);
et.setText(defaultText);
et.setSingleLine(true);
et.setLayoutParams(lp);

return et;
}

有人知道为什么会这样吗?

最佳答案

你可能会走另一条路。您可以创建具有指定样式的模板布局 xml 文件,例如在 res/layout 中创建 ev_template.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<EditText
android:id="@+id/my_acc_edit_tel_et"
style="@style/EditModeTextEdit"
android:singleLine="true"
custom:layout_gravity="fill_horizontal"/>

然后将其膨胀为您的新 EditText:

EditText et = (EditText) LayoutInflater.from(mCtx).inflate(R.layout.ev_template, null);

关于android - EditText 应用样式奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696301/

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