JAZZYVIEWPAGERMATHER(通过JazzyViewPager来实现Fragment页面间的动画切效果)

发布时间:2025-12-10 19:11:46 浏览次数:8

通过JazzyViewPager来实现Fragment页面间的动画切效果-

通过JazzyViewPager来实现Fragment页面间的动画切效果JazzyViewPager开源项目地址:https://github.com/jfeinstein10/JazzyViewPager其实实现它还是蛮简单的,有两个关键点,一是使用扩展FragmentPagerAdapter,二是重写instantiateItem,isViewFromObject这两个方法,如果仅仅扩展FragmentPagerAdapter的话,动画效果则会不起作用。…

JazzyViewPager 开源项目地址:

https://github.com/jfeinstein10/JazzyViewPager

其实实现它还是蛮简单的,有两个关键点,一是使用扩展FragmentPagerAdapter,二是重写instantiateItem,isViewFromObject这两个方法,如果仅仅扩展FragmentPagerAdapter的话,动画效果则会不起作用。

布局文件如下:

<LinearLayout    xmlns:andro    android:    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <com.jfeinstein.jazzyviewpager.JazzyViewPager        android:        android:layout_width="match_parent"        android:layout_weight="1"        android:layout_height="0dp">    </com.jfeinstein.jazzyviewpager.JazzyViewPager>    <TextView        android:background="@color/bg_silver"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="this is the TabFragmentActivity\nTAB will be here." /></LinearLayout>

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

Java代码如下:

package org.csware.ee.demo;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;import com.jfeinstein.jazzyviewpager.JazzyViewPager;import org.csware.ee.demo.fragment.FourFragment;import org.csware.ee.demo.fragment.OneFragment;import org.csware.ee.demo.fragment.ThreeFragment;import org.csware.ee.demo.fragment.TwoFragment;public class TabFragmentActivity extends FragmentActivity {    final static String TAG = "TabFragmentActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_tab_fragment);        init();    }    private JazzyViewPager mJazzy;    LinearLayout tabPage;    FragmentActivity activity;    void init() {        activity = this;        tabPage = (LinearLayout) findViewById(R.id.tabPage);        setupJazziness(JazzyViewPager.TransitionEffect.Standard);    }    void setupJazziness(JazzyViewPager.TransitionEffect effect) {        mJazzy = (JazzyViewPager) findViewById(R.id.jazzy_pager);        mJazzy.setTransitionEffect(effect);        //mJazzy.setAdapter(new MainAdapter());        mJazzy.setAdapter(new TabFragmentAdapter(getSupportFragmentManager()));        //mJazzy.setPageMargin(30);//        mJazzy.setOutlineEnabled(true);    }    /**     * 适配器     */    class TabFragmentAdapter extends FragmentPagerAdapter {        public TabFragmentAdapter(FragmentManager fragmentManager) {            super(fragmentManager);        }        Fragment[] pages = new Fragment[]{                new OneFragment(),                new TwoFragment(),                new ThreeFragment(),                new FourFragment()        };        @Override        public Fragment getItem(int position) {            return pages[position];        }        @Override        public int getCount() {            return pages.length;        }        //**************加上下面的两行即可实现换页时的动画效果*********************************//        @Override        public Object instantiateItem(ViewGroup container, int position) {            Object obj = super.instantiateItem(container, position);            mJazzy.setObjectForPosition(obj, position);            return obj;        }        @Override        public boolean isViewFromObject(View view, Object object) {            if (object != null) {                return ((Fragment) object).getView() == view;            } else {                return false;            }        }    }}

至于4个Fragment,就不贴了。

转载于:https://www.cnblogs.com/atwind/p/4602592.html

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477