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

下拉式动画

孔深
2023-03-14

我正在尝试创建一个下拉动画。当用户点击指定的按钮时,我希望视图@id/btnToHideView向下/向上滑动(可见/消失)。

以下是布局文件的外观:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/btnToHideView"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_marginLeft="5dp"
        android:layout_marginStart="5dp"
        android:layout_marginTop="5dp"
        android:background="@drawable/hide_btn"
        />

    <RelativeLayout
        android:id="@+id/relativeLayoutControls"
        android:layout_width="60dp"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dp"
        android:layout_marginEnd="6dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true">

        //I have buttons in this layoout

    </RelativeLayout>

</LinearLayout>

这就是我所尝试的:

我在res/anim

滑下去。xml

    <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="1000"
        android:fromYDelta="0"
        android:toYDelta="100%" />
</set>

slide_up.xml

    <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="1000"
        android:fromYDelta="100%"
        android:toYDelta="0" />
</set>

然后我试着通过以下方式来处理这个问题:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    controlsHide = (RelativeLayout) findViewById(R.id.relativeLayoutControls);

    final Animation slide_down = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.slide_down);

    final Animation slide_up = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.slide_up);

    btnToHideView = (Button) findViewById(R.id.btnToHideView);

    btnToHideView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            //I just did slide_up to test if its working
            controlsHide.startAnimation(slide_up);

        }
    });

我关注了这篇帖子,但当我点击按钮时,什么都没发生。在logcat中,它只向下打印操作

共有2个答案

长孙章横
2023-03-14

这是我的源代码实现(参考这里),您可以使用它们

// Initially hide/show the content view.
redLayout = mView.findViewById(R.id.history_operation);
//Load animation
slide_down = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_down);
slide_up = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_up);
  • 为上下滑动创建一个动画xml。如果您愿意,您可以随意设置动画的持续时间。这里我设置了500毫:
<translate
    android:duration="500"
    android:fromYDelta="-100%"
    android:toYDelta="0" />

<translate
    android:duration="500"
    android:fromYDelta="0"
    android:toYDelta="-100%" />

>

  slide_up.setAnimationListener(new Animation.AnimationListener() {
      @Override
      public void onAnimationStart(Animation animation) {

      }

      @Override
      public void onAnimationEnd(Animation animation) {
          //When the animation was finished, set gone to the view
          redLayout.setVisibility(View.GONE);
      }

      @Override
      public void onAnimationRepeat(Animation animation) {

      }
  });
  slide_down.setAnimationListener(new Animation.AnimationListener() {
      @Override
      public void onAnimationStart(Animation animation) {
          //When the animation start, set visible to the view
          redLayout.setVisibility(View.VISIBLE);
      }

      @Override
      public void onAnimationEnd(Animation animation) {
      }

      @Override
      public void onAnimationRepeat(Animation animation) {

      }
  });

最后,调用toggle函数来启动定义的动画

private void toggle1() {
    // Start animation
    if(isFadeOut){
        redLayout.startAnimation(slide_down);
    }else {
        redLayout.startAnimation(slide_up);
    }
    isFadeOut = !isFadeOut;
}
李凯定
2023-03-14

请试试这个:

幻灯片:

Animation slideUp = AnimationUtils.loadAnimation(activity, R.anim.slide_up);
view.startAnimation(slideUp);

slide_up.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromYDelta="100%"
        android:toYDelta="0" />
</set>

view.animate().translationY(0);

下拉:

view.animate().translationY(view.getHeight());
 类似资料:
  • 我想有一个下拉列表,当我改变第一个下拉列表时会改变。我确信我的servlet是正确的,因为它返回我需要的值,但是我的servlet不运行。当我调试时,它不会碰到servlet中的断点。 我想这与我的JavaScript有关。 以下是JSP文件: 这是javascript文件 servlet是可以的,我确信这一点,所以没有必要把它放在这里。

  • 我对apache poi的要求类似于Excel中的“下拉”格式设置。因此,获取一个示例行,在每个单元格中获取“格式”,并将其应用于下面的所有单元格。根据要求设置格式包括数字格式和单元格的背景颜色随值的变化。因此,我编写了一个类,它从示例行的单元格中获取并根据其应用。 在Alex Richter的帮助下,我了解到需要使用工作表的。如何获取当前应用于单元格的并向下扩展影响范围?

  • 实现带动画效果的下拉菜单。用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回。 [Code4App.com]

  • 本文向大家介绍Bootstrap下拉菜单样式,包括了Bootstrap下拉菜单样式的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Bootstrap下拉菜单的具体代码,供大家参考,具体内容如下 效果图: Bootstrap下拉菜单的样式: 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我是堆栈溢出的新手。我需要创建一个静态下拉列表,然后根据在静态下拉列表中选择的值创建一个动态下拉列表。只是Coldfusion和html。没有其他花哨的东西。因此,从第一个下拉菜单中,用户将选择:颜色,ID,官员,学校,然后点击“继续”按钮 然后在同一页面或不同页面上,如果选择了颜色,它将在数据库中进行查询并给出不同颜色的结果,如果选择了id,则将提供查询中的ID编号列表。如果选择了这

  • 我的表单中有一个下拉列表,用于过滤数据。我使用ajaxonchange函数根据所选列表过滤数据。 我的下拉列表如下所示: 这是我想要显示onchange数据的div: 当有onchange on下拉列表时,它将通过以下ajax功能: 然后转到url检查是否有来自ajax的帖子: 因此,过滤完成后,