将 android EditText 样式从矩形边框更改为下划线
Posted
技术标签:
【中文标题】将 android EditText 样式从矩形边框更改为下划线【英文标题】:Change android EditText style from rectangular border to underscore 【发布时间】:2013-07-10 12:56:30 【问题描述】:在我的一项活动中,我的 EditText 视图曾经看起来像这样
但现在它们看起来像这样
我需要帮助把它改回来:从矩形到下划线。
背景
因为我需要创建一个自定义的 ActionBar,所以我不得不更改相关活动的主题 YesterdayActivity
,使用以下内容
风格:
<style name="CustomWindowTitleBackground">
<item name="android:background">#323331</item>
</style>
<style name="CustomTheme" parent="android:Theme">
<item name="android:windowTitleSize">40dip</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
</style>
清单:
<activity
android:name="com.example.YesterdayActivity"
android:theme="@style/CustomTheme">
</activity>
创建:
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_yesterday);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.yesterday_title_bar);
…
【问题讨论】:
你想让edittext下划线吗? 我只想回到默认的样子,就像保留我的自定义actionBar。如果使用 EditText 构建一个简单的 android 应用程序,则第一张图片是默认外观,这就是我想要的。 我遇到了完全相同的问题 有关该问题的更多背景信息,请参阅***.com/questions/17605282/… 请检查这个问题:***.com/q/12470487/1237656 【参考方案1】:像这样更改您的自定义主题
<style name="CustomTheme" parent="android:Theme.Holo.NoActionBar">
因为你没有使用旧的 android 主题而不是 HoLo
有那种 editTextView
在较新版本的 Android 中,只要选择 Holo 主题,框架就会使用Window.FEATURE_ACTION_BAR
功能。每当应用程序调用 setFeatureInt(Window.FEATURE_CUSTOM_TITLE)
并且已经设置了 FEATURE_ACTION_BAR
时,框架都会引发异常。
它崩溃是因为 Holo 默认使用 ActionBar。修复很简单。使用 Holo 时关闭 ActionBar
【讨论】:
当我更改父级时,它抱怨将自定义功能与其他功能相结合。所以应用程序崩溃了。 感谢您的帮助。但我不明白你的编辑。最终的代码是什么样的?【参考方案2】:从你的风格中删除这一行
<item name="android:background">#323331</item>
因为它是反映行为的背景属性。
【讨论】:
【参考方案3】:有两种方法可以实现这一点。第一种方法是更改应用程序的主题
第一种方法:
AndroidManifest.xml
查看 android:theme
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
...
...
</application>
res/values/style.xml
Theme.AppCompat.Light.DarkActionBar 使 EditText 加下划线
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
以同样的方式使用 EditText
<EditText
android:layout_
android:layout_
android:hint="Email Address"
android:inputType="textMultiLine"
android:textSize="16dp" />
第二种方法:
创建一个带有底部笔划的可绘制形状并将其设置为 EditText 的背景
创建一个名为res/drawable/stroked_edittext_bg.xml的可绘制文件,如下链接所述:
How To Create An Android Shape With Bottom Stroke
<EditText
android:layout_
android:layout_
android:background="@drawable/stroked_edittext_bg"
android:hint="Email Address"
android:inputType="textMultiLine"
android:textSize="16dp" />
【讨论】:
【参考方案4】:修改editText的主题即可。
<EditText
android:layout_
android:layout_
android:inputType="textPersonName"
android:text="Name"
android:theme="@android:style/Theme.Holo"
android:ems="10"
android:id="@+id/editText"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />
【讨论】:
【参考方案5】:<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
将其改回您的默认样式。或者从代码中删除这一行。
因为您分享的第一张图片是默认的 Editext 背景。
【讨论】:
以上是关于将 android EditText 样式从矩形边框更改为下划线的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中从 styles.xml 设置 EditText 样式?
笔画没有应用于矩形到xml drawable用作android中的edittext背景
去除 android中EditText的下划线 fragment 切换调用的方法 Activity获取Fragment参数 绘制圆角矩形 普通dialog demo 使用 AlertDi