我有一个全屏幕的viewpager活动。现在,我想要的是,当需要看到更多页面时,动画箭头将从屏幕顶部向下滑动并保持在那里。只有当触摸或移动到其他页面时,箭头才会消失(如果您移动到其他页面然后返回当前,箭头将不会出现)。关于如何实施这个的任何建议? 我当前的策略:1。制作带有箭头滑动动画的gif。 2.收到消息后,将箭头动态附加到屏幕上显示的当前片段的顶部。使gif只重复一次。 3.当用户滑动到其他页面时动态删除箭头。
我不确定它们是否可能的事情:是否可以只播放一次gif?是否可以动态地将视图附加到当前片段?是否可以在当前片段出来时删除视图?
如果你能告诉我我的策略是否合适以及是否每一步都可行,我会很高兴,在我开始在谷歌中解决如何实际实施它之前:)
它需要看起来像这样:箭头从顶部滑动(中间向下): 箭头从顶部滑动(中间向下):
箭头到达他的最终位置:
答案 0 :(得分:0)
好好看了很多阅读后我终于实现了这样: 我创建了一个按钮并动态附加它。 我为按钮设置动画,使其从顶部向下滑动。 3.我设置了点击监听器以删除按钮。 4.我在viewPager上设置了一个setOnPageChangeListener,用于删除页面更改时的按钮。
我添加了一个名为" attachbutton()"的方法。到片段类: (从某种原因,我不能将第一部分作为"代码" ...)
LayoutInflater inflater = (LayoutInflater)getActivity()。getApplicationContext()。getSystemService(getActivity()。getApplicationContext()。LAYOUT_INFLATER_SERVICE); this.button =(Button)rootView.findViewById(R.id.new_message_button); if(this.button == null){
inflater.inflate(R.layout.new_messages_button, rootView, true);
this.button = (Button) rootView.findViewById(R.id.new_message_button);
this.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPager.setCurrentItem(lastPage);
}
});
this.button.startAnimation(AnimationUtils.loadAnimation(getActivity(),R.anim.slide_in_top));
this.button.setVisibility(View.VISIBLE);
}
}
这是动画的xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="5000"
android:fromYDelta="-100%"
android:toYDelta="0%"
android:fromXDelta="0%"
android:toXDelta="0%"
/>
</set>
这是viewPager的监听器:
mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
currentFragment.removeButton();
mPager.setOnPageChangeListener(null);
}
});