Adview(admob)与异步数据加载

Ama*_*ngh 5 java android adview

我有一个活动,其中广告填充在从java代码填充的动态表中,此表具有从网络异步加载的图像.当我不包含广告时,一切都按照我的预期运作.但是,当我将adview以及从网络异步加载的图像包含在内时,它会挂起UI,直到从网络加载图像为止.

我无法理解这种行为,你能不能给我解决方案,其中图像应与adview异步加载.

以下是我的活动代码:

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

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

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

        <TableLayout
            android:id="@+id/table_layout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <TableRow>

                <TextView
                    android:id="@+id/left_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="0"
                    android:gravity="left|center_vertical"
                    android:padding="5dip"
                    android:text="Code" />

                <TextView
                    android:id="@+id/middle_text"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="right|center_vertical"
                    android:padding="5dip"
                    android:text="Name of Company" />

                <TextView
                    android:id="@+id/right_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="0"
                    android:gravity="right|center_vertical"
                    android:padding="5dip"
                    android:text="1.3" />
            </TableRow>
        </TableLayout>
    </ScrollView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

谢谢

爱玛

sai*_*sai 1

也许您需要将 adView 与主 LinearLayout 分开,而不是将其加载到将完成网络(异步)活动的线性布局内。

只需尝试使用框架布局,adView 位于顶部,LinearLayout 的 margin_top 为“55dp”。

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

<LinearLayout 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top">

<com.google.ads.AdView xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/main_adView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:gravity="center"
    ads:adUnitId = "******"
    ads:adSize = "BANNER"
    >

</com.google.ads.AdView>
</LinearLayout>

<LinearLayout 
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="55dp"
android:orientation="vertical">


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

    <TableLayout
        android:id="@+id/table_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TableRow>

            <TextView
                android:id="@+id/left_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:gravity="left|center_vertical"
                android:padding="5dip"
                android:text="Code" />

            <TextView
                android:id="@+id/middle_text"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="right|center_vertical"
                android:padding="5dip"
                android:text="Name of Company" />

            <TextView
                android:id="@+id/right_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:gravity="right|center_vertical"
                android:padding="5dip"
                android:text="1.3" />
        </TableRow>
    </TableLayout>
</ScrollView>

</LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

请让我知道状态。