17

私は現在、埋め込みWebViewを使用してコンテンツを表示したり、入力フォームを使用してユーザーからデータを照会したりするアプリを作成しています。これらのフォームの入力フィールドは、-webkit-cssスタイルを使用してスタイル設定されます。

これは、HTC Senseを搭載したデバイスを除き、これまでのすべてのデバイス(Nexus One、LG Optimus 500、Samsung Galaxy Sでテスト済み)で正常に機能します。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>

これをアプリに埋め込む必要はありません。どこかのWebサーバーに配置し、組み込みのWebブラウザーを使用して開くだけです。

4

1 に答える 1

5

これは次のように関連している可能性があります。Android2.2以降に焦点を合わせたときにCSSを維持するようにHTMLINPUTタグのスタイルを設定するにはどうすればよいですか。

または、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 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 に答える