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

为布局滑入和滑出动画

邹华池
2023-03-14

我有一个LinearLayout,我正在动态地将TextView、ImageView添加到那个LinearLayout,现在我已经将OnClickListener添加到这些TextViews和ImageViews中。

slideIn = new TranslateAnimation(
    TranslateAnimation.RELATIVE_TO_PARENT, 1.0f,
    TranslateAnimation.RELATIVE_TO_PARENT, 0.0f,
    TranslateAnimation.RELATIVE_TO_PARENT, 0.0f,
    TranslateAnimation.RELATIVE_TO_PARENT, 0.0f);

slideIn.setDuration(500);
slideOut = new TranslateAnimation(
    TranslateAnimation.RELATIVE_TO_PARENT, 0.0f,
    TranslateAnimation.RELATIVE_TO_PARENT, -1.0f,
    TranslateAnimation.RELATIVE_TO_PARENT, 0.0f,
    TranslateAnimation.RELATIVE_TO_PARENT, 0.0f);

slideOut.setDuration(500);

问题:我已经把这个应用到线性布局中,但发生的是,当我点击next按钮时,当前问题将向左滑动,然后出现一个空白屏幕,然后它将滑入并显示下一个问题,但我希望当当前问题滑出时,它应该紧跟在下一个问题之后。

共有1个答案

胥宏义
2023-03-14

如果您的布局具有相同的内容,请在视图Flipper中创建两个布局。用数据加载第一个视图并显示它。当用户单击next或previous时,用数据加载下一个视图,并保留一个标志以显示第二个视图现在可见,并用动画显示它。

现在,使用基于标志值的数据加载适当的视图,并调用shownext()。

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

    mainFlipper = (ViewFlipper) findViewById(R.id.flipper);
    firstLayout = (LinearLayout) findViewById(R.id.layout1);
    secondLayout = (LinearLayout) findViewById(R.id.layout2);


    findViewById(R.id.btnPrevious).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            showPrevious();
        }
    });

    findViewById(R.id.btnNext).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            showNext();
        }
    });

}

private void showNext() {
    mainFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_in_left));
    mainFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_out_right));
    flip();
}

private void showPrevious() {
    mainFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_in_right));
    mainFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_out_left));
    flip();
}

private void flip() {
    if(isFirstVisible) {
        isFirstVisible = false;
        secondLayout.removeAllViews();
        secondLayout.addView(getTextView("Second"));
    } else {
        isFirstVisible = true;
        firstLayout.removeAllViews();
        firstLayout.addView(getTextView("First"));
    }
    mainFlipper.showNext();
}

private TextView getTextView(String txt) {
    TextView txtView = new TextView(this);
    txtView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    txtView.setText(txt);
    return txtView;
}
 类似资料:
  • 我有一个自定义的滑出菜单实现(不使用任何库),在其中我向右滑动布局,并在左侧显示菜单(就像脸书,谷歌应用程序一样)。显示菜单后,我通过给出一些alpha值来淡化右侧布局,如下面的代码所示: 但是这一切都发生在我的菜单显示时。我想要的是,当布局向右滑动时,我想使它变暗。布局从左边缘越远,布局就越暗。此外,我使用以下代码进行布局动画,将布局向右滑动。 当布局向右滑动时,我如何使其褪色/变暗?

  • 我查看了一些教程,了解片段之间的动画事务。我用这种方法制作动画,效果很好: 但是我想反转这个动画:旧片段滑出到左边,新片段滑入到右边,但是文件的值似乎对我的作用域没有用处。 我怎么能做到呢?

  • 本文向大家介绍Android运用onTouchEvent自定义滑动布局,包括了Android运用onTouchEvent自定义滑动布局的使用技巧和注意事项,需要的朋友参考一下 写在自定义之前 我们也许会遇到,自定义控件的触屏事件处理,先来了解一下View类中的,onTouch事件和onTouchEvent事件。 1、boolean onTouch(View v, MotionVent event)

  • 我正在一个屏幕上工作,其中有一个产品的工具栏信息和类似产品的列表。 除了滚动,一切都很好。当recyclerview出现在屏幕上时,滚动不顺畅。我认为这个想法应该是在没有滚动条的情况下使用recycler视图。因为现在看起来我有两个滚动条,这让滚动很痛苦。有没有一种方法可以让我禁用recyclerview的滚动条,并将其拉伸到所需的高度,让父滚动条平滑地滚动我的屏幕? 我使用的是StaggedGr

  • 布局(activity_main.xml): 活动(MainActivity.java): 动画: 谢了。

  • 问题内容: 我所看到的和jQuery的。左右滑动的功能/方式如何? 问题答案: 您可以使用jQueryUI中的其他效果来执行此操作: 快速示例: