大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、内容需要通过卡片的形式来展现,还有支持加载更多,所以最底部使用RecyclerView,最好是做成预加载形式,提前n页加载下一页,这样体验更好。
创新互联公司总部坐落于成都市区,致力网站建设服务有成都网站制作、网站设计、网络营销策划、网页设计、网站维护、公众号搭建、小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
2、为了展示更多内容卡片内要支持垂直分页,这时候我使用了ViewPager,一是可以更好的管理分页内容,二是ViewPager的垂直分页容易实现,三是可以处理不同控件之前的滑动冲突
3、ViewPager第一页使用的可回弹的ScrollView,可以在下拉的时候做一些动画之类的操作,例如关注操作等。
4、ViewPager的第二页只是一个普通的ScrollView,具体使用可以根据实际情况来处理
1、RecycleView的分页效果基于PagerSnapHelper,RecyclerView在25.1.0版本中添加了一盒基于SnapHelper的子类PagerSnapHelper,可以使RecyclerView像ViewPager一样的效果,一次只能滑一页,而且居中显示。
2、卡片的效果是在滑动的时候根据RecycleView的偏移量计算缩放因子进行缩放
3、RecycleView的item内有一个垂直分页的VerticalViewPager,VerticalViewPager是在ViewPager上转换X,Y即可
4、解决ViewPager与RecycleView滑动的冲突,在ViewPager中屏蔽父视图的上下滑动事件
5、解决ViewPager子视图ScrollView的冲突,在ViewPager中拦截事件
6、解决ViewPager与BounceScrollView的冲突,在下拉过程中有时会被ViewPager拦截
以上就是此项目中的所有关键点。
ScrollViewDemo 欢迎Star
RecycleViewCardGallary
实现了在android实现左右滑动切换界面的效果
这是实现了在android实现左右滑动切换界面的效果,该效果的源码下载,请到源码天堂下载吧,喜欢的朋友可以研究一下。
布局文件
xml version="1.0" encoding="utf-8" LinearLayout xmlns:android="; android:id="@+id/layContain" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="@drawable/bg" !-- android:background="#FFC0CB"-- FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" LinearLayout android:id="@+id/layFirst" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" android:layout_marginBottom="50dp" /LinearLayout LinearLayout android:id="@+id/laySec" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" /LinearLayout LinearLayout android:id="@+id/layThird" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" /LinearLayout LinearLayout android:id="@+id/layFourth" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" /LinearLayout /LinearLayout LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="40dp" TextView android:id="@+id/roll_dot1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="50dp" android:textColor="#ffffff" / TextView android:id="@+id/roll_dot2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="50dp" android:textColor="#000000" / TextView android:id="@+id/roll_dot3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="50dp" android:textColor="#000000" / TextView android:id="@+id/
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app=""
android:padding="10dp"
tools:context=".adapter.ThirdCoachAdapter"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="110dp"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
app:cardCornerRadius="5dp"
style="@style/CircleCardViewStyle"
android:layout_gravity="center_vertical"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginStart="10dp"
android:id="@+id/img_coach"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/avatar" /
android:layout_marginLeft="-10dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:id="@+id/tv_train_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="10dp"
android:text="最强核心打造"
android:textColor="@color/black70"
android:textSize="16sp" /
android:id="@+id/tv_train_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="5dp"
android:text="减脂"
android:textColor="@color/black60"
android:textSize="12sp" /
android:id="@+id/tv_train_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="5dp"
android:text="12:00-12:45"
android:textColor="@color/black60"
android:textSize="12sp" /
android:id="@+id/tv_train_cost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_gravity="center_vertical"
android:text="@string/train_cost"
android:textColor="@color/colorPrimary"
android:textSize="12sp" /
style="@style/CountdownViewStyle"
android:id="@+id/cv_coach_book"
android:layout_marginTop="35dp"
android:text="@string/coach_book"
android:layout_gravity="right"/
/LinearLayout