17

我目前正在编写一个应用程序,它使用嵌入式 WebView 来显示其内容,或者有时使用输入表单从用户那里查询数据。这些表单中的输入字段使用 -webkit-css 样式设置样式。

到目前为止,这在所有设备(在 Nexus One、LG Optimus 500、Samsung Galaxy S 上测试)上都可以正常工作,但带有 HTC Sense 的设备除外。在带有 HTC Sense 的设备上,如果输入元素被选中,样式会丢失。在 css 中使用input:focus {}没有帮助,带有 Sense 的 HTC 设备只是忽略。

这张图片说明了这一点,“昵称”当前已被选中,但仍应采用与“Vorname”和“Nachname”相同的方式设置样式。

焦点问题

有什么想法可以解决这个问题吗?

这是一个示例 HTML 页面(根据要求):

<html>
<head>
    <meta name="viewport" content="target-densitydpi=low-dpi" />
    <style type="text/css">
      input[type="number"],
      input[type="text"]{
    border: 1px solid #CDFF3C;
    background: #F3FECA;
    width: 220px;
    -webkit-border-radius: 4px;
        -webkit-box-shadow: inset 1px 1px 4px #AAA;
    -webkit-tap-highlight-color: rgba(205, 255, 60, 0.5);
      }
      body {
        background:#ebffb9;
        margin-right:0;
        margin-left:0;
        font-size: 14px;
      }
    </style>
</head>
<body>
<form name="data" action="/im/postdata" method="get" accept-charset="UTF-8">
  <p class="edit">
    <b>Vorname</b>
    <br/>
    <input type="text" name="3"/>
    </input>
  </p>
</form>
</body>
</html>

无需将其嵌入到应用程序中,只需将其放在某处的网络服务器上,然后使用内置的网络浏览器打开它。

4

1 回答 1

5

它可能与:我如何设置 HTML INPUT 标签的样式,以便在专注于 Android 2.2+ 时保持 CSS?.

或者,您可以通过使用包含 WebView 的本机应用程序来解决它,然后将 res/values/themes.xml 中的主题应用到您的应用程序,该应用程序使用您自己的样式覆盖 webTextViewStyle:


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTheme" parent="@android:syle/Theme">
        <item name="android:webTextViewStyle">@style/MyWebTextView</item>
    </style>
</resources>

然后在 Manifest 中将其分配给您的应用程序:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mywebapp" android:versionCode="1" android:versionName="1">
    <uses-permission android:name="android.permission.INTERNET" />

    <application android:icon="@drawable/icon" android:label="@string/app_name"
        android:theme="@style/MyTheme">
        .
        .
        .
    </application>
</manifest>

然后只需将您的 html 加载到您的 WebView 并查看文本输入控件是否采用了新样式。

于 2011-04-06T09:04:59.433 回答