将android EditText样式从矩形边框更改为下划线

人生必须的知识就是引人向光明方面的明灯。这篇文章主要讲述将android EditText样式从矩形边框更改为下划线相关的知识,希望能为你提供帮助。
在我的一个活动中,我的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>

的onCreate:
@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); … }

答案像这样更改您的自定义主题
< 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
另一答案从你的风格中删除这一行
< item name="android:background"> #323331< /item>

因为它是反映行为的背景属性。
另一答案有两种方法可以实现这一目标。第一种方法是通过更改应用程序的主题
第一种方法:
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 /值/ 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_width="match_parent" android:layout_height="48dp" 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_width="match_parent" android:layout_height="48dp" android:background="@drawable/stroked_edittext_bg" android:hint="Email Address" android:inputType="textMultiLine" android:textSize="16dp" />

另一答案如果你改变editText的主题,它可以实现。
< EditText android:layout_width="wrap_content" android:layout_height="wrap_content" 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" />

另一答案
< item name="android:windowTitleBackgroundStyle"> @style/CustomWindowTitleBackground< /item>

将其更改为默认样式。或者从代码中删除此行。
【将android EditText样式从矩形边框更改为下划线】导致您共享的第一个图像是默认的Edittext背景。

    推荐阅读