0
我有一個應用程序,我想添加一個免費版本的廣告,但我想對我的代碼做最小的更改。所以在我的佈局我這樣做:Android,RelativeLayout和動態添加元素
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/mainLayout"
android:layout_width="fill_parent" android:layout_height="0dip"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads">
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/adFrameLayout" android:background="@android:color/white">
</FrameLayout>
<LinearLayout android:id="@+id/buttonGrp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true"
android:layout_below="@id/adFrameLayout" android:orientation="horizontal">
<Button android:id="@+id/normalGameBtn" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/normalGame"/>
<Button android:id="@+id/shareBtn" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/shareButton"/>
</LinearLayout>
<RadioGroup android:id="@+id/aiRadioGrp" android:layout_below="@id/buttonGrp"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:checkedButton="@+id/normalAI" android:layout_gravity="center_horizontal">
...
</RadioGroup>
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/aiRadioGrp">
<TextView android:layout_width="fill_parent" android:layout_height="fill_parent"
android:text="@string/description" android:textSize="16dip"
/>
</ScrollView>
所以,我想的是,FrameLayout裏(adFrameLayout)這是在我想它顯示廣告,如果它是免費的版本,如果支付的頂部那麼大小應該停留在0.
因此,在基本(專業)代碼中,我使用Guice注入一個對象,它在onCreate中做了額外的處理。在專業版的代碼什麼也不做,在免費版本,我這樣做:
@Override
public void accept(Activity activity) {
FrameLayout frame = (FrameLayout) activity.findViewById(R.id.adFrameLayout);
frame.getLayoutParams().height = 20;
frame.invalidate();
}
這只是爲了確保它的工作,它沒有一個例子,FrameLayout裏保持在一個大小爲0 。我怎樣才能讓它在代碼中動態調整大小?當然,如果我在xml中指定了20px,它可以正常工作,但我猜想在付費版本中,我試圖將大小設置爲0也不起作用。我究竟做錯了什麼?
BTW我設置的大小之後我做的setContentView(R.id.main)