【问题标题】:Map Fragment shows as visible despite android:visibility="gone"尽管 android:visibility="gone",地图片段仍显示为可见
【发布时间】:2015-06-26 02:35:02
【问题描述】:

我正在为用于小屏幕的应用程序开发另一种简化布局。此布局应该包含在较大布局中使用的地图片段,但是,我应该尽可能避免编程更改。显示布局的活动也使用片段的 ID 处理片段,所以我不能只删除它。我尝试使片段不可见,如下所示:

<fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone" />

但片段仍然可见。当我将可见性设置为“不可见”时,也会发生同样的情况。片段的默认位置被视图部分隐藏,但是当我在布局中移动片段时,无论我放在哪里,它仍然显示为可见。

片段忽略可见性参数是否有原因?还有其他非编程解决方案吗?

【问题讨论】:

  • 您是否在活动中膨胀了片段?添加还是替换?
  • 根据使用情况,fragment只被setRetainInstance和getMap使用。我不是 100% 了解它们是如何工作的,但据我所知,那里没有任何东西可以控制视图的可见性......
  • 您是否以编程方式尝试过:setVisibility(View.GONE);
  • 不,但我必须尽可能避免程序化更改,特别是因为我只希望它在一个版本的布局中消失。

标签: android android-fragments visibility


【解决方案1】:

为了将来参考,dora 的回答有效,但有人建议我使用 FrameLayout 而不是 LinearLayout,它更简单,并且适用于内部的单个 View:

<FrameLayout
        android:id="@+id/dummyLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="gone" >
        <fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>

还有另一种可行的方法 - 将片段的宽度和高度更改为 0dp,但这被认为是一种 hack,通常不太正确的解决方案。

【讨论】:

    【解决方案2】:

    我不确定这是否符合您的要求,但您可以在要隐藏的片段上方添加一个虚拟布局容器,并将该布局可见性添加到消失/可见,无论您想要什么。但同样,当您想要显示片段时,您还应该使片段虚拟父布局可见性可见。

    <LinearLayout
        android:id="@+id/dummyLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:visibility="gone"  >
     <fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
      </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2020-02-21
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多