2

嘿伙计们,到目前为止,我设法将 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>    

在我的线性布局中,广告横幅仍然有效,整个广告横幅位置是在主 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.

编辑:

我试图添加

<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 时出错:未绑定前缀”

干杯

4

2 回答 2

5

关于解析错误:

这是问题中的错字吗?myapprimaryTextColor="#FFFFFF"而不是myapp:primaryTextColor="#FFFFFF". 这会给你 xml 解析错误。


关于布局:

使用相对布局。工作代码在帖子的末尾。首先,一些理论:)

您的 ScrollView 占据了整个屏幕,这就是您看不到 admob 视图的原因。当滚动视图被定义时,所有的屏幕都对它可用,所以它需要它。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,则可以将其设置为admob 与屏幕底部对齐,而滚动视图位于其上方,占用剩余的可用空间。

工作布局

<?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>
于 2011-05-12T20:34:11.983 回答
1

我使用了 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>
于 2011-05-12T20:10:04.920 回答