【问题标题】:#appcelerator textfield color and background color not sticking#appcelerator 文本字段颜色和背景颜色不粘
【发布时间】:2016-01-17 22:50:40
【问题描述】:

我在我的项目中使用下面的代码作为文本字段:

	var textfield = Ti.UI.createTextField({
		color: 'black',
		height: '40dp',
		top: '5dp',
		left: '5dp',
		right: '50dp',
		style: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
		hintText: 'Enter an address',
		backgroundColor: '#aaa',
		paddingLeft: '5dp'
	});

这适用于我的 iOS 模拟器和 iOS 设备,但不适用于 android。我可以在 iOS 上更改颜色(字体颜色)和 backgroundColor,我的 UI 将更改为我想要的十六进制颜色。在android上,无论我做什么,文本和背景总是白色的。在 iOS 上,我可以看到我的提示文本,但在 android 上,它也是白色的。

我觉得我错过了一些简单的东西,但我想不通。

【问题讨论】:

    标签: android colors appcelerator


    【解决方案1】:

    尝试使用 android 的自定义主题。 在platform->android->res->values文件夹中创建两个文件color.xml和custom_theme.xml

    颜色.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="text_tab_selected">#E15151</color>
        <color name="text_tab_unselected">#8F8F8F</color>
        <color name="edit_text_hint">#ECECEC</color>
        <color name="blackcolor">#000000</color>
        <color name="whitecolor">#FFFFFF</color>
        <color name="transparent">#00000000</color>
    </resources>
    

    custom_theme.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <style name="Theme.NoActionBar" parent="@style/Theme.AppCompat">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowSoftInputMode">adjustPan</item>
        <item name="android:editTextStyle">@style/appEditText</item>
    </style>
    <style name="Theme.NoActionBar.Translucent" parent="@style/Theme.AppCompat.Translucent">
        <item name="windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowSoftInputMode">adjustPan</item>
        <item name="android:editTextStyle">@style/appEditText</item>
    </style>
    <style name="appEditText" parent="@android:style/Widget.EditText">
        <item name="android:background">@drawable/edittext_background</item>
        <item name="android:textCursorDrawable">@null</item>
        <item name="android:textColorHint">@color/edit_text_hint</item>
        <item name="android:padding">5dp</item>
    </style>
    </resources>
    

    现在将此主题应用到 Androidmanifest.xml 中的活动

    <application android:theme="@style/Theme.NoActionBar">
        <activity android:name=".YOURACTIVITY" android:label="@string/app_name" android:theme="@style/Theme.NoActionBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    
    </application>
    

    谢谢

    【讨论】:

    • 我因病缺阵,但我会尝试一下。我希望有一个更简单的答案。我在 iOS 和 android 上使用 Appcelerator 的其他四个应用程序没有这种样式问题,所以我认为这是移动开发计算机导致的一些明显的配置错误。
    • 是的,你是对的。在我的旧应用程序中,我也没有遇到这个问题。我不记得 SDK 更新的确切版本,但我在更新 SDK 后遇到了这个问题。更新 SDK 后,我遇到了两个问题,一个是标题栏,一个是文本字段提示文本颜色,我使用上面的代码解决了它。
    • 这里的修复应该有效,但没有。我确实让我的原始代码工作了,但只有在删除我的 tiapp.xml 并完全按照我原来的方式手动重新键入它之后。相同的内容。我怀疑如果我删除了所有代码并重新输入了代码,它也会起作用。不得不再次删除并重新输入代码是一种浪费。这不是我第一次不得不简单地重新输入我的代码以使其工作。有谁知道 appcelerator studio 是否随机插入隐藏的控制字符?两次我不得不重新输入所有内容,因为工作室缩小了我的源代码。
    • 不要重新输入代码,只需尝试将 androidmanifest 文件(您将从 build 文件夹中获取)添加到 platform/android 文件夹中,然后将此主题应用到 androidManifest.xml 文件中。
    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多