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

时间:2013-07-12 03:47:17

标签: android android-layout android-actionbar android-theme

在我的一项活动中,我的EditText视图过去看起来像这样

enter image description here

但现在他们看起来像这样

enter image description here

我需要帮助改变它:从矩形到下划线。

背景

因为我需要创建自定义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);
…
}

5 个答案:

答案 0 :(得分:0)

像这样更改自定义主题

<style name="CustomTheme" parent="android:Theme.Holo.NoActionBar">

因为你没有使用那种有HoLo

的旧版主题而不是editTextView

在较新版本的Android中,只要选择了Holo主题,框架就会使用Window.FEATURE_ACTION_BAR功能。只要应用程序调用{​​{1}}并且已设置setFeatureInt(Window.FEATURE_CUSTOM_TITLE),框架就会抛出异常。 它崩溃了,因为Holo默认使用ActionBar。修复很简单。使用Holo时关闭ActionBar

答案 1 :(得分:0)

从你的风格中删除这一行

<item name="android:background">#323331</item>

因为它是反映行为的背景属性。

答案 2 :(得分:0)

有两种方法可以实现这一目标。通过更改应用程序主题的第一种方法

第一种方法:

<强>的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" />

答案 3 :(得分:0)

如果您更改editText的主题,则可以实现。

board_id

答案 4 :(得分:0)

<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>

将其更改回默认样式。或从代码中删除此行。

导致您共享的第一张图像是默认的Editext背景。