美文网首页
Java 反射

Java 反射

作者: 不爱读书007 | 来源:发表于2017-08-05 00:06 被阅读9次

    ViewPager 为例

    调用ViewPager中私有的方法 【void smoothScrollTo(int x, int y)】

    ViewPager mViewPager
    1.获取Class 对象
    Class<? extends ViewPager> viewPagerClass = mViewPager.getclass();
    2.获取指定的方法
    //public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
    Method smoothScrollTo = viewPagerClass .getDeclaredMethod("smoothScrollTo",int.class,int.class);
    3.暴力反射
    smoothScrollTo.setAccessible(true);
    4.调用方法
    smoothScrollTo.invoke(mViewPager,positionOffsetPixels,0);

    修改ViewPager中私有的成员变量【mTouchSlop】

    ViewPager mViewPager
    1.获取Class 对象
    Class<? extends ViewPager> viewPagerClass = mViewPager.getclass();
    2、获取置顶成员变量
    Field mTouchSlop = topViewPagerClass.getDeclaredField("mTouchSlop");
    3.暴力反射
    mTouchSlop .setAccessible(true);
    4.调用方法
    mTouchSlop.setInt(mViewPager,50);

    相关文章

      网友评论

          本文标题:Java 反射

          本文链接:https://www.haomeiwen.com/subject/crnblxtx.html