2015-02-12 1 views
2

У меня есть WebView, который содержит форму ввода. Когда пользователь выбирает первый вход, появляется клавиатура и прокручивает WebView так, чтобы вход был обнаружен. Моя проблема заключается в том, что API 19 при нажатии на следующий частично скрытый ввод WebView не прокручивается. Если бы я должен был закрыть клавиатуру, а затем выбрать вход, он будет прокручиваться правильно.WebView не прокручивается при открытии клавиатуры

Я много читал о том, работает ли Activity FullScreen, но это не сработает, но мое приложение не работает.

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.app.MyApp"> 

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:name=".App" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name="com.app.MyApp.MainActivity" 
      android:configChanges="orientation|keyboardHidden" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait" 
      android:windowSoftInputMode="adjustResize|stateVisible"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

WebView Планировка:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:animateLayoutChanges="true" 
    android:orientation="vertical"> 

    <WebView 
     android:id="@+id/banking_webview" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"/> 

    <LinearLayout 
     android:id="@+id/banner" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/BannerOrange" 
     android:clickable="true" 
     android:orientation="horizontal" 
     android:padding="2dp" 
     android:visibility="gone"> 

     <ImageView 
      android:id="@+id/banner_image" 
      android:layout_width="64dp" 
      android:layout_height="@dimen/single_line_height" 
      android:scaleType="fitCenter"/> 

     <TextView 
      android:id="@+id/banner_text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textSize="@dimen/typography_subhead"/> 
    </LinearLayout> 
</LinearLayout> 

main_activity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:wheel="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
     android:id="@+id/toolbar_actionbar" 
     layout="@layout/toolbar_default" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/toolbar_actionbar"> 

     <FrameLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

     <fragment 
      android:id="@+id/fragment_drawer" 
      android:name="com.app.MyApp.NavigationDrawerFragment" 
      android:layout_width="@dimen/navigation_drawer_width" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      app:layout="@layout/fragment_navigation_drawer"/> 
    </android.support.v4.widget.DrawerLayout> 
</RelativeLayout> 

ответ

-1

Поместите WebView Layout внутри ScrollView. Это решит вашу проблему.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:animateLayoutChanges="true" 
    android:orientation="vertical"> 

    <WebView 
     android:id="@+id/banking_webview" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"/> 

    <LinearLayout 
     android:id="@+id/banner" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/BannerOrange" 
     android:clickable="true" 
     android:orientation="horizontal" 
     android:padding="2dp" 
     android:visibility="gone"> 

     <ImageView 
      android:id="@+id/banner_image" 
      android:layout_width="64dp" 
      android:layout_height="@dimen/single_line_height" 
      android:scaleType="fitCenter"/> 

     <TextView 
      android:id="@+id/banner_text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textSize="@dimen/typography_subhead"/> 
    </LinearLayout> 
    </LinearLayout> 
</ScrollView> 
+0

Не решает проблему. Фактически результат даже в первом выбранном поле не прокручивается. –

+0

Можете ли вы поделиться снимком экрана своего веб-представления? – Abhishek

0

Вам нужно добавить android:windowSoftInputMode="adjustResize" к вашему WebView тега макет XML.

0

Вам нужно добавить:

android:fitsSystemWindows="true" 

вам корень файла макета для фрагмента/активности, а также:

android:windowSoftInputMode="adjustResize" 

вам активность в манифесте.