Элементы ввода в WebViews всегда имеют одинаковый стиль, если они выделены на устройствах HTC. - PullRequest
17 голосов
/ 02 марта 2011

В настоящее время я пишу приложение, которое использует встроенный WebView для отображения своего содержимого или иногда запрашивает данные у пользователя с помощью форм ввода.Поля ввода в этих формах оформлены с использованием стилей -webkit-css.

На данный момент это прекрасно работает на всех устройствах (протестированных на Nexus One, LG Optimus 500, Samsung Galaxy S), за исключением устройств с HTC Sense,На устройствах с HTC Sense стиль теряется, если выбран элемент ввода.Использование input:focus {} в css не помогает, HTC Devices with Sense просто игнорирует.

На этом изображении это показано, в настоящее время выбрано «Ник», но его стиль должен быть таким же, как «Vorname».и "Nachname".

Focus Problem

Есть идеи, возможно, обойти эту проблему?

Вот пример 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>

Нет необходимости вставлять это в приложение, просто поместите его где-нибудь на веб-сервер и используйте встроенный веб-браузер.чтобы открыть его.

1 Ответ

5 голосов
/ 06 апреля 2011

Это может быть связано с: Как я могу стилизовать тег HTML INPUT, чтобы он поддерживал CSS при фокусировке на Android 2.2 +? .

В качестве альтернативы вы можете обойти его, используя собственное приложение, содержащее 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 и посмотрите, принял ли элемент управления вводом текста новый стиль.

...