布局上的可视性不会影响孩子

时间:2015-03-14 14:46:21

标签: android android-layout android-view

我想隐藏LinearLayout及其所有子视图而不占用任何空间。 通常GONE属性应该是word,但事实并非如此。 我有一个包含子项的LinearLayout但是如果我应用adUnitLayout.setVisibility(View.GONE);,那么我的屏幕上仍然有一个空白区域(请在下面的屏幕上查看*)。

enter image description here

我想要隐藏第一个LinearLayout(@ + id / adUnit)及其所有子视图。

但是下面的代码可以使用。

LinearLayout adUnitLayout = (LinearLayout)itemView;

for(int i=0; i < adUnitLayout.getChildCount(); i++) {
    adUnitLayout.getChildAt(i).setVisibility(View.GONE);
}

为什么简单的adUnitLayout.setVisibility(View.GONE);不起作用?

这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/adUnit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp"
    android:background="@drawable/item_border_shadow">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp">

        <ImageView
            android:id="@+id/nativeAdIcon"
            android:layout_width="50dp"
            android:layout_height="50dp" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp">

            <TextView
                android:id="@+id/nativeAdTitle"
                android:lines="1"
                android:ellipsize="end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="18sp"
                android:textColor="@android:color/black"/>

            <TextView
                android:id="@+id/nativeAdBody"
                android:lines="2"
                android:ellipsize="end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                android:textColor="@android:color/black"/>

        </LinearLayout>

    </LinearLayout>

    <ImageView
        android:id="@+id/nativeAdImage"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:gravity="center"/>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:orientation="horizontal"
        android:weightSum="5">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="3"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <RatingBar
                android:id="@+id/nativeAdStarRating"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="?android:attr/ratingBarStyleSmall"
                android:stepSize="0.1"
                android:visibility="gone"
                android:isIndicator="true" />

            <TextView
                android:id="@+id/nativeAdSocialContext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="2"
                android:ellipsize="end"
                android:textSize="15sp"
                android:textColor="@android:color/black" />

        </LinearLayout>

        <Button
            android:id="@+id/nativeAdCallToAction"
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="16sp"
            android:visibility="gone" />
    </LinearLayout>

</LinearLayout>

0 个答案:

没有答案