Animation when changing textview

2019-03-09 00:03发布

I currently use a major workaround and have two activities switching each time I change the text on a TextView. I am using this code:

Weeklytext.this.overridePendingTransition( 
                    R.anim.slide_in_left, 
                    R.anim.slide_out_right
            );

Is it possible to do this in one Activity? It's kind of annoying having two Activities with the exact same content just so that I can use animations ;)

Thanks! Please ask if you don't understand my Question!

1条回答
▲ chillily
2楼-- · 2019-03-09 00:43

You can use a TextSwitcher to have animations when changing the text in a TextView.

A TextSwitcher is just a special kind of ViewSwitcher, and as such, it lets you provide two Views from which to animate between. When you call setText(), it updates the text of the next TextView and then animates that one into the screen, and the current one out. The old TextView is then designated as the 'next' TextView and the process repeats.

You can specify the Views using setFactory(...) or just simply add two TextViews to it with addView(...).

// get a TextSwitcher view; instantiate in code or resolve from a layout/XML
TextSwitcher textSwitcher = new TextSwitcher(context);

// specify the in/out animations you wish to use
textSwitcher.setInAnimation(context, R.anim.slide_in_left);
textSwitcher.setOutAnimation(context, R.anim.slide_out_right);

// provide two TextViews for the TextSwitcher to use
// you can apply styles to these Views before adding
textSwitcher.addView(new TextView(context));
textSwitcher.addView(new TextView(context));

// you are now ready to use the TextSwitcher
// it will animate between calls to setText
textSwitcher.setText("hello");
...
textSwitcher.setText("goodbye");
查看更多
登录 后发表回答