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

将片段部分移出屏幕

东龙野
2023-03-14

这件事我已经被难倒好一阵子了。我正在尝试将包含在框架布局中的片段移到右边,这样只有左边20%的片段是可见的。

我认为我遇到的问题是父级不允许片段移动到它的边界之外,或者我不知道如何移动它。我所尝试的一切都只是将碎片推到右边的墙上,并将碎片缩放到合适的位置。我需要它把碎片推到右边墙外。任何帮助都将不胜感激。

共有1个答案

雍嘉勋
2023-03-14

这意味着虽然它是动画,但这并不意味着片断本身就是动画使它看起来的地方。它仍然会在原始位置接收OnClick事件,直到它被物理移动。

您可能正在使用旧式动画(例如TranslateAnimation),这些动画是为瞬时效果而设计的,而不是为永久效果设计的。

我向您指出我的一个相关问题的原因是,许多解决方案,包括我自己的解决方案使用了新的animator框架,这是为更持久的效果而设计的。

同样,这个例子对我没有帮助,我正在尝试将它部分地移离屏幕,而不是仅仅将它压在边缘上。

特别是对于animator框架来说,“将其部分移离屏幕”和“将其挤压到边缘”之间没有实质区别。例如,如果您阅读了我的解决方案,就会看到TranslateWidgets()方法演示了一组小部件的水平幻灯片:

private void translateWidgets(int deltaX, View... views) {
    for (final View v : views) {
      v.setLayerType(View.LAYER_TYPE_HARDWARE, null);

      v.animate().translathtml" target="_blank">ionXBy(deltaX).setDuration(ANIM_DURATION)
       .setListener(new AnimatorListenerAdapter() {
         @Override
         public void onAnimationEnd(Animator animation) {
           v.setLayerType(View.LAYER_TYPE_NONE, null);
         }
       });
    }
  }

在您的情况下,deltax将是任何适当的值,以实现您的20%效果(可能是0.2f乘以容器的宽度,或沿这些路线),或者在看到完整片段时撤消该效果。

我的回答包含到完整的示例项目的链接,这两个项目都是针对本机API Level 11 animator的,也是使用animator框架的NineOldAndroids后端口的。

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

  • 我试图在中显示Firebase数据。我创造了我的适配器和一切...当我运行该应用程序时,它可以正常工作,直到我将数据添加到Firebase,从而将部分推离屏幕。这会导致应用程序崩溃。 以下是MainActivity的xml: 下面是我为适配器设计的Cardview: 以下是MainActivity中重要的代码: 这是我的回收器适配器: 崩溃日志

  • 问题内容: 所以我需要屏蔽一个SSN#输入字段,假设ssn是,我需要显示(他们输入每个数字时都是实时的),但是我仍然需要保留原始值以提交。 如果用户严格输入值,我可以做到这一点,但是如果用户执行其他任何操作(如删除或将光标移动到随机位置并添加/删除数字,复制粘贴/删除等),它就会中断如果可能的话,我真的不想听一堆事件来完成这项工作。 我还尝试过在输入字段的顶部放置一个div来显示被屏蔽的ssn,而

  • 我试图创建一个单一活动的Android应用程序。我有带有BottomNavigationView的MainActivity (only activity),三个顶级片段和一些子片段。我的要求是,每当屏幕显示顶级片段,底部导航应该是可见的,这样切换是可能的。但是当我查看任何子片段时,底部导航应该是隐藏的。是否有任何现成的方式使用导航组件或需要手动更改可见性?

  • 我一直在试图让这段代码在片段中工作。这段代码在活动中运行良好,但我无法使其在片段中工作。 当我单击一个按钮时,它会调用截屏方法。 这是屏幕截图的代码: “findViewById”由于位于片段中而无法识别。 我试过: 但它也不起作用。我得到 任何帮助都将不胜感激。

  • 所以我得到了一个主活动,它有一个表格布局和一个视图页面来显示不同的片段。 当我使用Tablayout在片段之间移动时,一切都很好,但如果我使用按钮打开片段,当返回到前一个片段时(通过按下取消按钮),我留下的片段元素将留在屏幕上(如图所示)。 我试图使用一个方法在片段中从的片段中返回主页,但它没有移回我的家庭片段(使用repalce它确实会返回,但当我对元素进行攻击时。 这是我的主要: 这是片段: