您的位置:首页 > 其它

问题记录 170228 viewpager同时显示前后,即同时显示三张图

2017-02-28 14:44 274 查看
看了大神的http://www.open-open.com/lib/view/open1462840410556.html viewpager翻转动画。发现有很好的翻转动态效果,但不是我要的显示效果,最后看到这个文章http://blog.csdn.net/wzy_1988/article/details/50463406。

我的如下:

<com.xxx.ViewPageContainer
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:clipChildren="false">

<android.support.v4.view.ViewPager
android:id="@+id/main_bg_vp"
android:layout_width="600dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:clipChildren="false" />
</com.xxx.ViewPageContainer>


ViewPagerContainer的源码和上个作者的一样

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;

/**
* Created by Administrator on 2017/2/28.
*/

public class ViewPageContainer extends FrameLayout {
private ViewPager mViewPager;

public ViewPageContainer(Context context) {
this(context, null);
}

public ViewPageContainer(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}

public ViewPageContainer(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);

initData();
}

private void initData() {
// 允许子View在其区域内进行绘制
setClipChildren(false);

// child clip功能在Android3.x之后的版本会因为硬件加速而不起作用,所以这里需要关闭硬件加速功能
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

@Override
protected void onFinishInflate() {
super.onFinishInflate();
try {
mViewPager = (ViewPager) getChildAt(0);
} catch (Exception e) {
throw new IllegalStateException("The root child of PagerContainer must be a ViewPager");
}
}

public ViewPager getViewPager() {
return mViewPager;
}
}

最后效果图如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: