我的布局中有以下部分布局:
.....
<LinearLayout
android:id="@+id/llBottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/llGameInformation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:gravity="center_vertical">
<ImageButton
android:id="@+id/imgBtnVolume"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@drawable/icon_button_selector"
android:src="@drawable/icon_button_sound" />
<!--app:srcCompat="@drawable/icon_button_sound"-->
<me.grantland.widget.AutofitTextView
android:id="@+id/tvGameCardText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/cl_game_screen_card_name_text_color"
android:textSize="30dp"
tools:text="card name"
android:gravity="center"
autofit:minTextSize="22dp"
android:layout_centerInParent="true"
android:textAppearance="@style/TextAppearance.GothamBook"
android:layout_toLeftOf="@+id/imgBtnShowCards"
android:layout_toRightOf="@+id/imgBtnVolume"/>
<ImageButton
android:id="@+id/imgBtnShowCards"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@drawable/icon_button_selector"
app:srcCompat="@drawable/icon_button_view"/>
</RelativeLayout>
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
ads:adSize="FLUID"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</LinearLayout>
....
正如您可以理解的那样,名称 llBottom 是LinearLayout
,它应该位于屏幕的底部,而且它是。{在其中,我有RelativeLayout
包含多个视图,在其下面我放置了AdView
。
我使用visibility =“off”启动AdView,我打算根据服务器首选项显示它。
问题是:虽然此功能与Nexus 5X相同,但AdView已被删除, llGameInformation 是布局中最低的ViewGroup,另一方面是Galaxy设备上的ViewGroup侧面AdView不可见但仍占用空间,因此 llGameInformation 下方有一个空白区域。
有人知道处理这个问题的正确方法是什么?所以所有设备上都不会留下空白空间?
答案 0 :(得分:1)
您应该使用FrameLayout
打包AdView并将其可行性设置为gone
,视图可能会改变其自身的可见性。
如果你想更深入地潜水,或者之前没有工作,你可以写一件服装FrameLayout
,看看有人真的试图改变它不是你的能见度,在这种情况下你就可以调试它并阻止它,作为你的观点。
如果你不喜欢,有人无法改变你的FrameLayout
生存能力。