在Android库中设置EditText样式

时间:2015-11-25 23:28:41

标签: android android-theme android-library

我已经创建了一个带有自定义提示对话框的Android库项目。 因此我使用了普通的EditText Widget。 但它在Android 5设备上没有应有的风格......

正如您在屏幕截图中看到的那样,它只是基本的旧Android主题(橙色边框)。

Custom Dialog Screenshot

EditText:

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/text_input"/>

还尝试了style =&#34; @ style / AppTheme&#34; - &GT;还是一样。

我的styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>

还尝试在我的AndroidManifest.xml中添加样式属性,但我不认为这可以在库项目中工作(所以仍然是相同的橙色边框...)

接下来我尝试了...... 创建了自定义的EditText视图:

public class MaterialEditText extends EditText {

public MaterialEditText(Context context) {
    super(context, null, R.style.Widget_AppCompat_EditText);
}

public MaterialEditText(Context context, AttributeSet attrs) {
    super(context, attrs, R.style.Widget_AppCompat_EditText);
}
}

- &GT;如果我点击它就不会显示EditText我看到EditText的值,但我无法编辑它。

我该如何解决这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:0)

基本上,解决方案是更改清单中的样式属性。

android:theme="@style/AppTheme"

出于某种原因,您必须将样式更改为默认样式才能使另一个样式库工作。

按下&#34; Alt + Space&#34;尝试不同的风格。在该属性的引号之间。

答案 1 :(得分:0)

我无法修复它,我使用drawable来模拟材质风格

<?xml version="1.0" encoding="utf-8"?>

<item android:id="@+id/border_bottom">
    <shape>
        <solid android:color="#2196f3" />
    </shape>
</item>

<!-- main color -->
<item
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp">
    <shape>
        <solid android:color="#FAFBFB" />
    </shape>
</item>

<!-- draw another block to cut-off the left and right bars (holo -> 5dp) -->
<item android:bottom="2dp">
    <shape>
        <solid android:color="#FAFBFB" />
    </shape>
</item>