viewpager一屏显示多个view 并且可以预览下一个view
来源:互联网 发布:怎么注册成为淘宝客 编辑:程序博客网 时间:2024/05/16 18:32
最近工作需要一个效果 就是需要展示一屏多个view 使用viewpager实现这个功能 可以预览下一个view的一部分 效果图如下:
代码如下:先上activity
public class MyViewPagerActivity extends BaseActivity { private ViewPager viewPager; private MyViewPagerAdapter adapter; private List<Integer> list; private Context context; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_viewpager); context = this; addData(); viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_magin)); //显示viewpager间距 viewPager.setOffscreenPageLimit(3); adapter = new MyViewPagerAdapter(context, list); viewPager.setAdapter(adapter); } /*** * 填充数据 */ private void addData() { list = new ArrayList<>(); list.add(R.color.red); list.add(R.color.blue); list.add(R.color.white); list.add(R.color.colorPrimary); }
接着适配器:
package com.example.administrator.demo.viewpager;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.example.administrator.demo.R;import java.util.List;/** * Created by Administrator on 2017/6/7 0007. */public class MyViewPagerAdapter extends PagerAdapter { private Context mContext; private List<Integer> mList; public MyViewPagerAdapter(Context context, List<Integer> list) { this.mContext = context; this.mList = list; } @Override public int getCount() { return mList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_my_viewpager, null); container.addView(view); //这一步很关键 把当前的imageview添加到适配器上 ImageView ivViewPager = (ImageView) view.findViewById(R.id.iv_viewpager); ivViewPager.setBackgroundResource(mList.get(position)); Log.d("TAG", "position ==== " +mList.get(position)); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { super.destroyItem(container, position, object); } @Override public float getPageWidth(int position) { return (float) 1; }}
xml 如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:layout_marginTop="@dimen/margin_size_50" android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="false" android:layerType="software" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="center" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:clipChildren="false" /> </FrameLayout></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/iv_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/corners_bg" /></LinearLayout>
done!!!!!!!!!!
阅读全文
0 0
- viewpager一屏显示多个view 并且可以预览下一个view
- [addChildViewController]View Controller中可以添加多个sub view,在需要的时候显示出来;
- ViewPager,一屏显示多个page
- ViewPager 一屏显示多个效果
- ViewPager一屏显示多个页面
- ViewPager获取当前显示的View
- ViewPager获取当前显示页面的View
- Android-viewpager显示左右两边的View
- android--多View切换viewpager
- android--多View切换viewpager
- 一个view显示多个model(一个页面显示多张表)
- 一屏显示多个ViewPager的子item(中间显示完全,左右显示部分)
- 自定义view画圆,并且圆可以随意拖动
- ViewPager的使用,并在用户未滑动View时,每隔5s钟自动切换到下一个View
- .net mvc4 一个 view 显示多个 model
- ViewSwitcher如何实现一次显示多个View
- android_fragment一个屏幕显示多个view.xml
- 在小程序中将多个view居中显示
- 阿里巴巴开源框架Weex学习填坑记录
- 奇异值分解在推荐系统上的作用
- 创建React Native项目后引用#import "RCTRootView.h"提示找不到
- 计算广告学习笔记 4.2竞价广告系统-广告网络概念
- 关于npm无法安装依赖包以及安装包缓慢的解决方法
- viewpager一屏显示多个view 并且可以预览下一个view
- Android
- 03.java语言基础-变量的定义和基本使用
- 下载文件服务器消息响应头
- java double/float 保存X.00数字是,默认成了x.0 少了一位数字
- BZOJ 1042 [HAOI2008] 硬币购物
- linux下通过user-config.jam指定编译器编译boost
- STL 动态数组类
- Swift System group container for systemgroup.com.apple.configurationprofiles path is?