ViewPager+Fragment组成滑动且带有光标
来源:互联网 发布:minitab 两组数据分析 编辑:程序博客网 时间:2024/05/01 12:47
效果如图:
这个实现了可以自由滑动viewpager切换fragment
最下面有Demo
MainActivity
public class MainActivity extends AppCompatActivity { @Bind(R.id.iv_line) ImageView imageView; @Bind(R.id.viewpager) ViewPager viewPager; @OnClick({R.id.group_one, R.id.group_two, R.id.group_three}) public void onBtnClick(View view) { switch (view.getId()) { case R.id.group_one: viewPager.setCurrentItem(0); break; case R.id.group_two: viewPager.setCurrentItem(1); break; case R.id.group_three: viewPager.setCurrentItem(2); break; } } private int ivWidth; private ArrayList<Fragment> mDatas; private FragmentPagerAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); init(); } private void init() { Display display = getWindow().getWindowManager().getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); display.getMetrics(dm); ivWidth = (dm.widthPixels / 3); mDatas = new ArrayList<>(); TestFragment1 testFragment1 = new TestFragment1(); TestFragment2 testFragment2 = new TestFragment2(); TestFragment3 testFragment3 = new TestFragment3(); mDatas.add(testFragment1); mDatas.add(testFragment2); mDatas.add(testFragment3); mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return mDatas.get(position); } @Override public int getCount() { return mDatas.size(); } }; viewPager.setAdapter(mAdapter); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) imageView.getLayoutParams(); lp.leftMargin = position * ivWidth + (int) (positionOffset * ivWidth); lp.width = ivWidth;//这里动态设置光标的长度,以便适配不同的分辨率 imageView.setLayoutParams(lp); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); }}主布局也比较简单 就是几个组合在一起
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="test.test.demo.MainActivity"> <include android:id="@+id/include_group" layout="@layout/group" android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" /> <ImageView android:id="@+id/iv_line" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/include_group" android:background="@drawable/tabline" android:src="@drawable/tabline" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/iv_line" /></RelativeLayout>
几个界面的Fragment就不贴了。就是测试页面
Demo下载地址
0 0
- ViewPager+Fragment组成滑动且带有光标
- ViewPager + Fragment 滑动
- fragment viewpager界面滑动
- fragment 滑动 viewPager
- ViewPager+Fragment+游标滑动
- viewpager Scrollview fragment 滑动
- ViewPager+Fragment滑动
- Fragment+ViewPager+底部滑动
- ViewPager+Fragment滑动
- ViewPager左右滑动Fragment
- ViewPager+Fragment实现滑动标签
- ViewPager+Fragment实现滑动页面
- ViewPager+Fragment实现滑动页面
- ViewPager + Fragment 实现页面滑动
- Fragment+ViewPager 左右滑动 Demo
- viewpager+fragment实现滑动效果
- Fragment+ViewPager实现滑动换页
- ViewPager+Fragment实现界面滑动
- iOS Objective-C基本核心动画,偏移,旋转,缩放,路径,抖动,组动画
- 下载好自动安装
- js之JavaScript 面向对象介绍 ----谷营中西软件科技园
- iOS 引导图的聚光灯效果代码实现
- 码农必须知道的几个名词(持续更新...)
- ViewPager+Fragment组成滑动且带有光标
- Git的下载安装与使用
- 第70课:SparkSQL内置函数解密与实战学习笔记
- div中position的相对绝对路径的详解
- python中range函数
- 解决169x/hao123浏览器劫持问题
- Eular质数筛法
- krpano 教程 - view标签中文说明
- Problem 1608 - Calculation