Добавление Admob в ScrollView -> AdBanner исчезает - PullRequest
2 голосов
/ 12 мая 2011

Привет, ребята. До сих пор мне удалось внедрить Admob в обычную линейную схему.Теперь я добавил еще scrollview и adbanner исчез.Я не знаю, что я могу сделать против этого.

Следует коду из .xml, где я добавил scrollview:

   <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/linearLayout"
   android:orientation="vertical"
   android:layout_width="fill_parent" android:layout_height="match_parent">
   <ScrollView android:id="@+id/scrollView1" android:layout_height="wrap_content" android:layout_width="match_parent">
     <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent"   android:layout_height="match_parent" android:orientation="vertical">

     [whole bunch of layout elements whoch shouldn´t affect the adbanner]

     </LinearLayout>
   </ScrollView>    

В моемлинейный макет, где по-прежнему работает adbanner, вся позиция adbanner была сделана в основном файле activitiy.java (сделал это с помощью учебника на taiic.com)

    // Lookup R.layout.main
    LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout); 

    // Create the adView
    // Please replace MY_BANNER_UNIT_ID with your AdMob Publisher ID
    String pubID = "xxxxxxxxxxxxxxxxxx";
    AdView adView = new AdView(this, AdSize.BANNER, pubID);

    // Add the adView to it
    layout.addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest request = new AdRequest();
    request.setTesting(true);

    adView.loadAd(request);

Может кто-нибудь сказать мне, чтоизменить или какой код добавить при внедрении баннера admob в scrollview?

edit:

я пытался добавить

<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
myapp:backgroundColor="#000000"
myapprimaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"
android:alignParentBottom="true"/>

между двумя последними строками в.xml

  </LinearLayout>
     [here]
  </ScrollView>

, но затем я получаю сообщение об ошибке "ошибка: ошибка синтаксического анализа XML: несвязанный префикс"

cheers

Ответы [ 2 ]

5 голосов
/ 13 мая 2011

Об ошибке разбора:

Это опечатка в вопросе?myapprimaryTextColor="#FFFFFF" вместо myapp:primaryTextColor="#FFFFFF".Это даст вам ошибку синтаксического анализа xml.


О макетах:

Используйте RelativeLayout. Рабочий код находится в конце поста.Во-первых, немного теории:)

Ваш ScrollView занимает весь экран, поэтому вы не видите его вид.Когда представление прокрутки определено, весь экран доступен для него, поэтому он берет его.Представление admob на самом деле нарисовано ниже вашего экрана.Это может быть воспроизведено в этом примере:

нерабочий макет

<?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/linearLayout"
   android:orientation="vertical"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent">
   <ScrollView android:id="@+id/scrollView1" 
       android:layout_height="wrap_content" 
       android:layout_width="fill_parent">
         <LinearLayout android:id="@+id/linearLayout1" 
         android:layout_width="fill_parent"   
         android:layout_height="fill_parent" 
         android:orientation="vertical"
         >
            <EditText  
            android:layout_width="fill_parent" 
            android:layout_height="300dp" 
            android:text="Test1"
            />
            <EditText  
            android:layout_width="fill_parent" 
            android:layout_height="300dp" 
            android:text="Test2"
            />
            <EditText  
            android:layout_width="fill_parent" 
            android:layout_height="300dp" 
            android:text="Test3"
            />
         </LinearLayout>
   </ScrollView>    
        <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Test4"
        />
   </LinearLayout>

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

рабочий макет

<?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent">
        <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Test4"
        android:id="@+id/test4"
        android:layout_alignParentBottom="true"
        />
       <ScrollView android:id="@+id/scrollView1" 
           android:layout_height="wrap_content" 
           android:layout_width="fill_parent"
           android:layout_above="@id/test4"
           >
         <LinearLayout android:id="@+id/linearLayout1" 
         android:layout_width="fill_parent"   
         android:layout_height="fill_parent" 
         android:orientation="vertical"
         >
            <EditText  
            android:layout_width="fill_parent" 
            android:layout_height="300dp" 
            android:text="Test1"
            />
            <EditText  
            android:layout_width="fill_parent" 
            android:layout_height="300dp" 
            android:text="Test2"
            />
            <EditText  
            android:layout_width="fill_parent" 
            android:layout_height="300dp" 
            android:text="Test3"
            />
         </LinearLayout>
       </ScrollView>    
   </RelativeLayout>
1 голос
/ 13 мая 2011

Я использовал версию admob xml, и это то, что я использую, и это работает. Объявление вверху. Просто скопируйте и вставьте, и вы скоро будете прокручивать.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res/com.yourproject.here"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">

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

    <ScrollView android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:fillViewport="true" > 

        [whole bunch of layout elements whoch shouldn´t affect the adbanner]

    </ScrollView>

</LinearLayout>
...