2011-06-03 8 views
5

He estado teniendo problemas de mantenimiento de un banner de AdMob se mueva a lo largo del teclado en pantalla y que cubre mis puntos de vista de texto ....AdMob bandera cubre vista de texto al teclado en pantalla aparece

Este es el enlace a lo que soy tratando de lograr en Android: http://bit.ly/myfoodcalc

yo sé que mi diseño es un poco poco complejo, demasiadas vistas anidadas (tal vez), etc.

he tryed cambiar las cosas en el manifiesto sin éxito.

Para que entenderlo mejor aquí es el hijo de pseudo XML (XML y el completo más adelante en el post) ...

<ScrollView> 
     <Linear layout> 
      <ImageView> 
      <TableView> 
        <Several rows with a Edit Text widget> 
      </TableView> 
      </ImageView> 
     </LinearLayout> 
    </ScrollView> 

    <FrameLayout> 
     <ImageView> 
    </FrameLayout> 

Una aquí está mi completa XML

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:id="@+id/relativeLayout" 
        android:background="@drawable/backgroundwithtext"> 

    <ScrollView android:id="@+id/scrollView1" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

     <LinearLayout android:id="@+id/linearLayout1" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:orientation="vertical" 
         android:gravity="center_horizontal"> 

      <ImageView android:id="@+id/imageView1" 
         android:layout_width="wrap_content" 
         android:src="@drawable/icon" 
         android:layout_height="wrap_content"></ImageView> 

      <TableLayout android:id="@+id/tableLayout1" 
          android:layout_height="wrap_content" 
          android:layout_width="wrap_content" 
          android:background="@drawable/backgroundsmallobj"> 

       <TableRow android:id="@+id/tableRow1" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"> 

        <TextView android:text="TITLE" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:id="@+id/textView1"> 
        </TextView> 

       </TableRow> 

       <TableRow android:id="@+id/tableRow2" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"> 

        <EditText android:text="EditText" 
           android:maxLines="1" 
           android:id="@+id/editText2" 
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content" 
           android:imeOptions="actionNext"> 
        </EditText> 

       </TableRow> 

       <TableRow android:id="@+id/tableRow3" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"> 

        <EditText android:text="EditText" 
           android:maxLines="1" 
           android:id="@+id/editText3" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:imeOptions="actionNext"> 
        </EditText> 

       </TableRow> 

       <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content"> 

        <EditText android:text="EditText" 
           android:maxLines="1" 
           android:id="@+id/editText4" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:imeOptions="actionNext"> 
        </EditText> 

       </TableRow> 

       <TableRow android:id="@+id/tableRow5" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"> 

        <EditText android:text="EditText" 
           android:maxLines="1" 
           android:id="@+id/editText5" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:imeOptions="actionNext"> 
        </EditText> 

       </TableRow> 

       <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
        <EditText android:text="EditText" android:maxLines="1" android:id="@+id/editText6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:imeOptions="actionDone"></EditText> 
       </TableRow> 

       <TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
        <Button android:id="@+id/button1" android:layout_height="wrap_content" android:text="Button" android:layout_width="wrap_content"></Button> 
       </TableRow> 


      </TableLayout> 

     </LinearLayout> 

    </ScrollView> 

    <FrameLayout android:id="@+id/frameLayout1" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_width="fill_parent"> 

     <com.google.ads.AdView android:id="@+id/adView" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        ads:adUnitId="############" 
        ads:adSize="BANNER" 
        ads:loadAdOnCreate="true" /> 

    </FrameLayout> 

</RelativeLayout> 

Respuesta

13

Puede cambiar cómo el ke yboard se comporta cuando aparece sobre el anuncio. Vaya a su AndroidManifest.xml y agregue este atributo en la etiqueta de actividad con el banner de AdMob.

android:windowSoftInputMode="adjustPan" 

Esto evitará que los anuncios salten por encima del teclado y ocultando la entrada. En cambio, aparecerán detrás del teclado (oculto). No sé si esto va en contra de la política de AdMob. Solo estoy brindando una solución.

0

Puede que esta no sea la solución ideal para usted, pero es lo que considero que es la mejor para mis usuarios. Cuando se mostró el teclado, estaba cubriendo botones y texto en mi WebView, lo que generó una mala experiencia para el usuario. Para solucionarlo, configuré mi altura de AdView a la altura del anuncio de banner, en mi caso 50dp y configuré el diseño de AdView a continuación en WebView. Finalmente configuré la altura de WebView para wrap_content. Cuando el teclado está visible, el anuncio se elimina temporalmente porque se queda sin espacio, cuando el teclado está oculto, el anuncio se muestra de nuevo. Espero que esto ayude.

<WebView 
    android:id="@+id/webUI" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" /> 

<com.google.ads.AdView android:id="@+id/adView" 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:layout_below="@+id/webUI" /> 
-2

AdMob Simplemente DESACTIVE cuando softkeyboard podría estallar, es bastante simple en JS con el plugin Cordova admob

$(document).on({ 
     blur : function(){ 
      showAd(true) 
     }, 
     focus : function(){ 
      showAd(false); 
     }, 
    }, ':text,number,password,textarea'); 

Por lo tanto, tal vez debería echar un vistazo en el archivo java del plugin admob

1

Intenté configurar android: windowSoftInputMode = "adjustPan". oculta el banner de AdMob pero también el EdiText. Así que la solución que encontré es ocultar el banner de AdMob cuando se abre el teclado. Aprendí cómo detectar si el teclado abre here. y aquí está mi solución:

final View activityRootView = findViewById(R.id.sample_main_layout); 
      activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
       @Override 
       public void onGlobalLayout() { 
        int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight(); 
        if (heightDiff > Support.dpToPx(MainActivity.this, 200)) { // if more than 200 dp, it's probably a keyboard... 
         mAdView.setVisibility(View.GONE); 
        } 
        else{ 
         mAdView.setVisibility(View.VISIBLE); 
        } 
       } 
      }); 
1

añadir esto en su Manifiesto de la actividad androide: windowSoftInputMode = "stateVisible | adjustPan"

Cuestiones relacionadas