当前位置: 首页 > 知识库问答 >
问题:

将片段覆盖在现有片段上

诸葛皓
2023-03-14

我有一个TabLayout或TabHost的设计,无论你想考虑什么。假设这是选项卡-

Tab1 | Tab2 | Tab3 | Tab4 | Tab5

在此情况下,将执行以下操作-

  1. 表1-打开碎片1
  2. 表2-打开碎片2
  3. Tab3-在现有片段上打开一个覆盖图,显示半透明的黑色视图
  4. 表4-打开碎片3
  5. 表5-打开碎片4

你知道怎么解决这个问题吗?提前感谢!!

更新:我使用的解决方案

我试过这个,但不得不进行大量定制。所以我在中间停了下来,因为这需要做很多工作。我做的另一个方法是,我在与Tab3完全相同的位置上放置一个视图,然后单击该视图,使覆盖视图可见。

共有2个答案

胡野
2023-03-14

正如@ZakTaccardi所说,ViewPager不是为此而设计的。

然而,我会尝试创建一个有5页的碎片页面编辑器。我的意思是,getCount()应该返回5。如果当前索引为2,则应返回当前屏幕上的实例。这意味着,适配器应该知道当前页面是什么。您可以使用ViewPager让适配器知道当前页面是什么。要检索实例,请使用FragmentManager。不要将对片段的引用存储在适配器中,因为这将导致内存泄漏。这是为了在选择选项卡3时防止重复片段。

要显示覆盖,请在您的查看页面上实现一个视图,当位置为2时,将其显示在查看页面的回调中。当位置不是2时隐藏它。

邴兴为
2023-03-14

ViewPager不是为这个用例设计的。选项卡自动映射到其在ViewPager中的相应元素。但我可以看到它是如何工作的。

  1. 具有可见性的半透明覆盖视图。它覆盖了您的整个查看页面

 类似资料:
  • 我正在使用jetpack导航从片段过渡到细节片段。 我需要帮助在显示细节片段的片段上显示细节片段。 请看下面的照片,看看我正在努力实现什么: 我也在导航图中的动画上使用基本的fade_in/fade_out。 这是我得到的结果: 如何设置转换以使细节片段显示在呈现视图上? 这是我所有的进步: 底部导航菜单 导航图 主要活动。kt Tab1片段(这是带有埃菲尔铁塔图像的片段 赏金编辑: 我希望在导航

  • 我有一个,它创建一个,然后这个创建另一个: 这让我想到。是否真的可以删除并转到? 提前感谢您的时间,我在网上找不到任何合适的信息!

  • 此时,Frag2在堆栈上,是唯一可见的片段。我使用了replace和addToBackStack,因为我需要后退导航。我的问题是,当我在Frag2内旋转屏幕时,活动中的super.oncreate(savedInstanceState)方法调用frag1的构造函数。 在用户按下后退按钮之前,有没有什么方法可以避免调用Frag1的构造函数?

  • 基础示例 <vuep template="#example"></vuep> <script v-pre type="text/x-template" id="example"> <template> <div class="amap-page-container"> <el-amap vid="amap" :zoom="zoom" :center="center" c

  • 在我的应用程序中,当点击导航抽屉上的不同项目时,我需要在片段之间切换。我为它创建了一个新方法DisplayFragment。代码如下: 它显示了错误的"片段元素在上面的行如下"错误的第二个参数类型找到android.support.v4.app.片段;需要android.app.片段;" 我试着改变从android的导入。支持v4.app。碎片到android。应用程序。碎片但它随后显示了Frag

  • 我有一个片段,其中我已经在屏幕顶部实现了一个包含cardview的recyclerview,现在我想创建另一个recyclerview,它还将cardview添加到同一片段中的屏幕底部。 我是android studio的新手,所以知道在哪里放置什么对我来说是个问题。 这是片段代码 现在如何添加另一个回收器视图? 这是布局图